Professional Documents
Culture Documents
04/2021
PL20200729105521013
Guidelines
This manual contains notes of varying importance that should be read with care; i.e.:
Important:
Highlights key information on handling the product, the product itself or to a particular part of the documentation.
Note: Provides supplementary information regarding handling the product, the product itself or a specific part of
the documentation.
Trademarks
All names identified by ® are registered trademarks of Siemens AG.
The remaining trademarks in this publication may be trademarks whose use by third parties for their own purposes
could violate the rights of the owner.
Disclaimer of Liability
We have reviewed the contents of this publication to ensure consistency with the hardware and software
described. Since variance cannot be precluded entirely, we cannot guarantee full consistency. However, the
information in this publication is reviewed regularly and any necessary corrections are included in subsequent
editions.
Security information
Siemens provides products and solutions with industrial security functions that support the secure operation of
plants, systems, machines and networks. In order to protect plants, systems, machines and networks against
cyber threats, it is necessary to implement – and continuously maintain – a holistic, state-of-the-art industrial
security concept. Siemens’ products and solutions only form one element of such a concept.
Customer is responsible to prevent unauthorized access to its plants, systems, machines and networks. Systems,
machines and components should only be connected to the enterprise network or the internet if and to the extent
necessary and with appropriate security measures (e.g. use of firewalls and network segmentation) in place.
Additionally, Siemens’ guidance on appropriate security measures should be taken into account. For more
information about industrial security, please visit https://www.siemens.com/industrialsecurity.
Siemens’ products and solutions undergo continuous development to make them more secure. Siemens strongly
recommends to apply product updates as soon as available and to always use the latest product versions. Use of
product versions that are no longer supported, and failure to apply latest updates may increase customer’s
exposure to cyber threats.
To stay informed about product updates, subscribe to the Siemens Industrial Security RSS Feed under https://
www.siemens.com/industrialsecurity.
Revision PL20200729105521013
State Published
Author Siemens AG
Language en-US
Module Collection of related user interface screens, which may be deployed using
Solution Studio.
A Module can navigate to other Modules using States.
Component AngularJS directive that can be used in the Mashup Editor of Solution
Studio.
Controller Angular object which "controls" data and the view used to show it.
Provider Term which groups Services and Angular Factories (all the customizable
Angular objects).
Workflow
1. In Project Studio:
• Create a Custom Functional Block.
• Create the commands to interact with.
• Compile the Custom Functional Block.
• Create an Extension App based on the AppU4DM App.
• In the Extension App, reference the previously created Custom Functional Block.
• Define the navigation property between the Custom Functional Block entity and the standard entities.
• Customize the User Interface, if you have created Composite Commands.
• Compile the Extension App.
2. In Solution Studio:
• In the Opcenter EX DS solution, add the Extension App to the AppU4DM App .
• Associate any custom Command to a master or runtime worker.
• Build and deploy the Solution.
The following workflow and instructions refer only to the customization of standard UI modules.
If you want to customize a Model-driven UI module, refer to How to Extend User Interfaces in an Extension
App in the Opcenter Execution Foundation Development and Configuration Guide.
Workflow
In order to create one or more custom Angular Providers, perform the following steps:
1. Identify the Provider you need to customize.
2. Write the custom code of the Provider in one or more Javascript files.
3. Name the Provider object_custom as explained above in the Naming Convention paragraph.
4. Reference the code in the Angular module 'Siemens.SimaticIT.U4DM.AppU4DM.services.customServices'
which is already defined and included in the Opcenter EX DS application.
5. Repeat steps 1-4 for each Angular Provider.
6. Create a custom UI Module and add it to the UI Application where you want to apply your customizations.
If the purpose of the UI Module is only to include the customizations, it can be set as hidden in the
containing UI Application.
Examples
• Item Collection Viewers
• Property Grids
• Command Bars
• Menu Buttons
• Tab Controls
• oData queries and Backend calls
• Icons
• Default UI configuration
Procedure
1. In one of the supported Web Browsers, click F12 to enter Developer Tools mode.
2. In the Developer Tools, click the Console tab.
3. Access the Opcenter EX DS page you want to customize. In the Developer Tools Console, the Opcenter EX DS log
is displayed.
4. Make sure that the displayed items are filtered according to at least Info level.
5. Browse the log and take note of the rows starting with [UADM][CUSTOMIZATOR].
Log Structure
Each row has the following structure:
[UADM] [CUSTOMIZATOR] Searching for providerName_custom : FOUND/NOT FOUND
Procedure
1. Create a .js file into a custom folder of your custom App.
2. Create a service called [controller_name]_custom into
the Siemens.SimaticIT.U4DM.AppU4DM.services.customServices module.
3. Create a function called icvConfig inside the service.
function configureWOIcv() {
var options = u4dmSvc.icv.configureIcvByEntity("WorkOrder", 'm', getAllWOs,
selectionChanged, 'workorder-status-list');
//insert here custom page management of standard options, if needed
vm.icvConfig = u4dmSvc.customizator.customizeICV(controllerName, options);
}
Procedure
1. Create a .js file into a custom folder of your custom App.
2. Create a service called [Controller Name]_custom into
the Siemens.SimaticIT.U4DM.AppU4DM.services.customServices module.
3. Create a function called propertyGridConfig inside the service to customize the retrieval function. If you have
more than one Property Grid on the page, you need to create corresponding functions with different names.
function workOrderStatus_workOrderAdd_Ctrl_custom () {
this.configureFromProcessPg = pgConfig;
Method Example
createTextProperty(config) pgFields.lorem =
propertyGrid.createTextProperty({
id: 'lorem',
labelKey: 'sit.u4dm.lorem',
value: "ipsum",
read_only: false,
required: true,
invisible: false,
checkSpecialChars: true,
onChange: function(oldVal, newVal, form)
{...},
customValidation: function(val, model){...}
});
Method Example
createTextPropertyWithButton(config) pgFields.lorem =
propertyGrid.createTextPropertywithButton({
..., //widgetspecific attributes
onClick: callbackFn,
buttonDisabled:
vm.currentItem.GenerateDisabled,
buttonIcon: icon.plus,
buttonText: "Generate",
showButtonInViewMode: true //if button has to be
displayed in view mode
});
createTextAreaProperty(config) pgFields.lorem =
propertyGrid.createTextAreaProperty({
id: 'lorem',
labelKey: 'sit.u4dm.lorem',
value: "ipsum",
read_only: true,
});
createTextAreaPropertyWithButton(config) pgFields.lorem =
propertyGrid.createTextAreaPropertywithButton({
..., //widgetspecific attributes
onClick: callbackFn,
buttonDisabled:
vm.currentItem.GenerateDisabled,
buttonIcon: icon.plus,
buttonText: "Generate",
showButtonInViewMode: true //if button has to be
displayed in view mode
});
createNumericProperty(config) pgFields.lorem =
propertyGrid.createNumericProperty({
id: 'lorem',
labelKey: 'sit.u4dm.lorem',
value: "ipsum",
read_only: true,
onChange: function(oldVal, newVal, form)
{...},
required: true,
invisible: false,
minVal: vm.currentItem.QuantityMin,
maxVal: vm.currentItem.QuantityMax,
validationCallback: function(val, model)
{...}
});
Method Example
createNumericPropertyWithButton(config) pgFields.lorem =
propertyGrid.createNumericPropertywithButton({
..., //widgetspecific attributes
onClick: callbackFn,
buttonDisabled:
vm.currentItem.GenerateDisabled,
buttonIcon: icon.plus,
buttonText: "Generate",
showButtonInViewMode: true //if button has to be
displayed in view mode
});
Method Example
createEntityPickerProperty(config) pfFields.lorem =
propertyGrid.createEntityPickerProperty({
id: 'lorem',
labelKey: 'sit.u4dm.lorem',
value: vm.ipsum,
required: vm.lorem,
dataSource: vm.productionTypeList // Array
or a Promise,
displayProperty: 'NId',
onChange: function(oldVal, newVal){...} //
For selection change,
pickerOptions:
u4dmSvc.icv.configureIcvByEntity(
"MaterialDefinition", null, null, null,
controllerName, '')
});
/*datasource configured as promise*/
pgManager.createEntityPickerProperty({
id: 'powderMaterial',
value: vm.currentItem.selectedPowder,
labelKey: 'sit.u4dm.genealogy.labels.powder-
batch',
dataSource: getPowderMaterials(), // returns
a promise
displayProperty: 'NId',
pickerOptions: pickerOptions,
onChange: materialChange,
resolveEntityPickerValue: function (result) {
return _(result.value).find(function
(matItem) { return matItem.Id ==
selectedMaterialId }); //custom logic to return
selected object
}
});
function getPowderMaterials() {
if (vm.materials) return materials;
else return u4dmSvc.api.am
.powder.getAll().then(function (result) {
vm.materials = result.value; //in
case pgGrid is refreshed multiple times then we
can cache data to avoid multiple hits to the
server
return result;
}, u4dmSvc.ui.overlay.showBackendError);
}
/*datasource configured as object for lazy
loading*/
pfFields.lorem =
propertyGrid.createEntityPickerProperty({
id: 'lorem',
Method Example
labelKey: 'sit.u4dm.lorem',
value: vm.ipsum,
required: vm.lorem,
dataSource:{
getAll: function (options, hasFilter),
searchField: 'Name' //required in case if
the displayProperty is a custom property
} // Array or a Promise,
displayProperty: 'NId',
onChange: function(oldVal, newVal){...} //
For selection change,
pickerOptions:
u4dmSvc.icv.configureIcvByEntity(
"MaterialDefinition", null, null, null,
controllerName, '')
});
createDateTimeProperty(config) pgFields.lorem =
propertyGrid.createDateTimeProperty({
id: 'lorem',
labelKey: 'sit.u4dm.lorem',
dateValue: vm.currentItem.ED,
timeValue: vm.currentItem.ET,
validationCallback: endDateValidationFn
});
createCheckboxProperty(config) pgFields.lorem =
propertyGrid.createCheckboxProperty({
id: 'lorem',
labelKey: 'sit.u4dm.lorem',
read_only: true,
invisble: false,
options: vm.options // [{labelKey:
'sit.u4dm.ipsum', checked: false}, ...]
});
Method Example
createComboBoxProperty(config) pfFields.lorem =
propertyGrid.createComboBoxProperty({
id: 'lorem',
labelKey: 'sit.u4dm.lorem',
value: vm.ipsum,
required: vm.lorem,
dataSource: vm.optionsList,
displayProperty: 'NId',
valueProperty: 'Id'
onChange: onChangeCallback //For selection
change
});
createNumericPropertyWithReadOnlyText(co pgFields.lorem =
nfig) propertyGrid.createNumericPropertyWithReadOnlyTe
xt({
id: 'lorem',
labelKey: 'sit.u4dm.lorem',
value: "ipsum",
read_only: true,
onChange: function(oldVal, newVal, form)
{...},
required: true,
invisible: false,
minVal: vm.currentItem.QuantityMin,
maxVal: vm.currentItem.QuantityMax,
validationCallback: function(val, model)
{...},
textValue: "someText" //To set the value of
the read-only text field.
});
Method Example
createDurationTimeProperty(config) pgFields.lorem =
propertyGrid.createDurationTimeProperty({
id: 'lorem',
labelKey: 'sit.u4dm.lorem',
value: "ipsum",
read_only: true,
onChange: function(oldVal, newVal, form)
{...},
required: true,
invisible: false,
format: 'd:h:m:s', // default is 'h:m:s' and
it supports any momentjs duration supported
format (https://momentjs.com/docs/#/durations/)
value: vm.currentItem.someValue, // value
can be ticks, moment.duration object or a plain
JS object with structure {seconds: s, minutes:
m, hours: h},
displayValue: "someText"//To set the value
in readOnly mode.
})
createNumericPropertyWithEntityPicker(confi pfFields.lorem =
g) propertyGrid.createEntityPickerProperty({
id: 'lorem',
labelKey: 'sit.u4dm.lorem',
value: vm.ipsum // if number than it will be
assigned to numeric field else if array then 0-
index value will be assigned to Numeric Field
and 1-index value will be assigned to
EntityPicker
required: vm.lorem,
read_only: true,
dataSource: vm.productionTypeList,
displayProperty: 'NId',
disablePicker: true, //If only entity picker
needs to be disabled
pickerValue: vm.ipsum,
onChange: function(oldVal, newVal){...} //
For selection change,
pickerOptions:
u4dmSvc.icv.configureIcvByEntity(
"MaterialDefinition", 'm', null, null,
controllerName, '')
});
Method Example
createPasswordProperty(config) pgFields.lorem =
propertyGrid.createPasswordProperty({
id: 'lorem',
labelKey: 'sit.u4dm.lorem',
value: "ipsum",
read_only: true
});
createPasswordPropertyWithButton(config) pgFields.lorem =
propertyGrid.createPasswordPropertywithButton({
..., //widgetspecific attributes
onClick: callbackFn,
buttonDisabled:
vm.currentItem.GenerateDisabled,
buttonIcon: icon.plus,
buttonText: "Generate",
showButtonInViewMode: true //if button has to be
displayed in view mode
});
Procedure
1. Create a .js file into a custom folder of your custom App.
2. Create a service called [controller Name]_custom into
the Siemens.SimaticIT.U4DM.AppU4DM.services.customServices module.
3. Create a function called commandBarConfig inside the service.
function workOrderStatus_workOrderList_Ctrl_custom($state) {
var button = {
type: 'Command',
name: 'name',
image: 'fa-sitemap',
label: 'Custom Button',
onClickCallback: function () {
$state.go('home.Siemens_SimaticIT_U4DM_AppU4DM_workOrder.customadd')
},
visibility: false
};
//CUSTOMIZE ICV
this.icvConfig = function (standardConfig) {
var newColumn = {
field: newField,
displayNameKey: newFieldDisplayText,
type: 'string'
};
standardConfig.gridConfig.columnDefs.unshift(newColumn);
var newColumn2 = {
field: newDTField,
displayNameKey: newDTFieldDisplayText,
type: 'string'
};
standardConfig.gridConfig.columnDefs.unshift(newColumn2);
var newColumn3 = {
field: "ProcessNId",
displayNameKey: "Process NId",
type: 'string'
};
standardConfig.gridConfig.columnDefs.unshift(newColumn3);
standardConfig.mediumTileTemplate = mediumTileTemplate;
var oldsc = standardConfig.onSelectionChangeCallback;
standardConfig.onSelectionChangeCallback = function (selected) {
oldsc(selected);
if (selected && selected.length > 0) {
button.visibility = true;
} else {
button.visibility = false;
}
}
return standardConfig;
};
this.commandBarConfig = function (standardConfig) {
standardConfig.bar.push(button);
return standardConfig;
}
}
Procedure
1. Create a .js file into a custom folder of your custom App.
2. Create a service called [Controller Name]_custom into
the Siemens.SimaticIT.U4DM.AppU4DM.services.customServices module.
3. Create a function called menuButtonConfig inside the service.
Procedure
1. Create a .js file inside a custom folder of your custom App.
2. Create a service called [Controller Name]_custom inside
the Siemens.SimaticIT.U4DM.AppU4DM.services.customServices module.
3. Create a function called tabsConfig inside the service.
Procedure
1. Create a .js file into a custom folder of your custom App.
2. Create a service called [Service Name]_custom into the
Siemens.SimaticIT.U4DM.AppU4DM.services.customServices module
3. Do either of the following:
• Create a function called getAll inside the service to customize the retrieval function.
• Create a function called getAll_inject inside the service to customize the retrieval function using the
standard one provided by Opcenter EX DS (passed as parameter)
4. Do either of the following:
• Create a function called [Command Name] inside the service to customize the creation from process of
the Work Order
• Or create a function called [Command Name]_inject inside the service to customize the update
function using the standard UADM one (passed a s parameter)
$timeout(function () {
deferred.resolve(true);
}, 100);
return deferred.promise;
};
}
Procedure
1. Create a .js file into a custom folder of your custom App.
2. Create a service called u4dm.services.icons_custom into
the Siemens.SimaticIT.U4DM.AppU4DM.services.customServices module.
3. Create a function called customizeIcons inside the service.
(function () {
'use strict';
Procedure
1. Create a .js file into a custom folder of your custom App.
2. Create a service called u4dm.ui.configuration_custom into
the Siemens.SimaticIT.U4DM.AppU4DM.services.customServices module.
3. Create a function called customizeUIDefaults inside the service.
(function () {
'use strict';
The Standard UI Modules and Mashup UI Modules listed below are all related to the AppU4DM App.
All other Opcenter Execution Discrete Apps and Extension Apps only contain Model-driven UI Modules.
To retrieve the list of all Model-driven UI modules by App/Extension App, log in to Opcenter EX FN
Solution Studio as explained in section Model-driven UI Modules.
Standard UI Modules
• CLM Resource Management
• Configuration Keys
• DCD Engineering
• Defect Type Management
• Document Management
• Genealogy
• Labor Tracking Management
• Non-Conformance Lifecycle
• Non-Conformance Notification Management
• Non-Conformance Supervisor Management
• Operation/Step Category
• Order Work In Progress
• Process Catalog Management (Deprecated)
• Team Management
• Transport Operation Landing UI Module
• Users and Skills
• Work Order As Built
• Work Order As Planned BOP
• Work Order Status (Deprecated)
Model-driven UI Modules
To retrieve the list of Model-driven UI Modules:
1. From Windows Apps, in the Siemens Automation category, click the Opcenter EX FN Solution Studio link.
2. In the web page, log in to the Opcenter EX FN Solution Studio in either of the following ways:
• Insert the credentials of the user with administrator rights and click Sign In.
• Click Use your current Windows session to Log In link to access the application with the current user
credentials.
3. In the home page, click the link to the Opcenter EX DS solution.
4. In the User Interface > UI Applications page, select the Opcenter EX DS solution and click Open.
5. The Model-driven UI Modules are those indicated with ModelDriven in the UI Module Type column.
Name
Siemens.SimaticIT.U4DM.AppU4DM.CLMResourceMgt
clmResourceMgt_list_Ctrl clm-resource-mgt-list-ctrl.js
clmResourceMgt_Svc clm-resource-mgt-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.configKeys
configKeys_list_Ctrl configKeys-list-ctrl.js
commandsCtrl commands.js
configKeys_Svc configKeys-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.workInstruction
PMI2ALT home.Siemens_SimaticIT_U4DM_AppU4DM_workInstruction_pmi
2alt
pmi2altCtrl pmi2alt-ctrl.js
workInstruction_altEng_Ctrl workInstruction-alteng-ctrl.js
workInstruction_altRuntime_Ctrl workInstruction-altruntime-ctrl.js
workInstruction_list_Ctrl workInstruction-list-ctrl.js
workInstruction_Svc workInstruction-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.defectTypeMgt
defectTypeMgt_add_Ctrl defectTypeMgt-add-ctrl.js
defectTypeMgt_addMachine_Ctrl defectTypeMgt-add-machine-ctrl.js
defectTypeMgt_addMaterial_Ctrl defectTypeMgt-add-materials-ctrl.js
defectTypeMgt_addGroup_Ctrl defectTypeMgt-group-list-ctrl.js
defectTypeMgt_groups_Ctrl defectTypeMgt-groups-ctrl
defectTypeMgt_groupsList_Ctrl defectTypeMgt-groups-list-ctrl.js
defectTypeMgt_list_Ctrl defectTypeMgt-list-ctrl.js
defectTypeMgt_list_edit_Ctrl defectTypeMgt-list-edit-ctrl.js
defectTypeMgt_select_Ctrl defectTypeMgt-select-ctrl.js
defectTypeMgt_selectDetails_Ctrl defectTypeMgt-select-details-ctrl.js
defectTypeMgt_selectMachines_Ctrl defectTypeMgt-select-machine-ctrl.js
defectTypeMgt_selectMaterials_Ctrl defectTypeMgt-select-materials.js
defectTypeMgt_Svc defectTypeMgt-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.document
document_download_Ctrl document-download-ctrl.js
document_list_Ctrl document-list-ctrl.js
documentsvc document-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.Genealogy
Genealogy home.Siemens_SimaticIT_U4DM_AppU4DM_genealogy
genealogy_Ctrl genealogy-ctrl.js
genealogy_materialNote_Ctrl genealogy-disassemble-material-note-ctrl.js
genealogy_powderGenealogy_Ctrl powderGenealogy-ctrl.js
genealogy_Svc genealogy-svc.js
genealogy_Tree_Svc genealogy-tree-svc.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.highAutomationOpLanding
UADM.highAutomationOpLanding mashup-module.js
u4dm.services.runtime u4dm-runtime-service.js
u4dm.services.runtime.wooperations uadm-runtime-wo-operations.js
u4dm.services.runtime.utils uadm-runtime-utils-service.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.highAutomation.operatorDetails
UADM.highAutomationOpLanding mashup-module.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.highAutomation.operatorLanding
UADM.highAutomationOpLanding.operatorLanding mashup-module.js
Name
operatorDetailsTask
UADM.highAutomationOpLanding mashup-module.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.laborTrackingMgt
laborTrackingMgt_pcDashboardChangeWorkplace_Ctrl pc-dashboard-changewp-ctrl.js
laborTrackingMgt_pcDashboardEditView_Ctrl pc-dashboard-edit-ctrl.js
laborTrackingMgt_pcDashboardListView_Ctrl pc-dashboard-list-ctrl.js
laborTrackingMgt_pcDashboardSelectView_Ctrl pc-dashboard-select-ctrl.js
laborTrackingMgt_pcTimeUpdateListView_Ctrl pc-time-update-list-ctrl.js
laborTrackingMgt_pcTimeUpdateSelectView_Ctrl pc-time-update-select-ctrl.js
laborTrackingMgt_pcTimeUpdateSelectHistoryAdd_Ctr pc-time-update-select-history-add-ctrl.js
l
laborTrackingMgt_pcTimeUpdateSelectHistoryEditVie pc-time-update-select-history-edit-ctrl.js
w_Ctrl
laborTrackingMgt_pcTimeUpdateHistory_Ctrl pc-time-update-select-history-list-ctrl.js
laborTrackingMgt_pcTimeUpdadeSelectOperationEdit pc-time-update-select-operations-edit-ctrl.js
_Ctrl
laborTrackingMgt_pcTimeUpdateSelectOperations_Ctr pc-time-update-select-operations-list-ctrl
l
laborTrackingMgt_Svc labor-tracking-svc.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.NCLifecycleMgt
NCLlifecycle_AddEdit_Ctrl nc-lifecycle-mgt-lifecycle-add.js
NCLlifecycle_list_Ctrl nc-lifecycle-mgt-list-ctrl.js
NCLlifecycle_TransitionDtails_Ctrl nc-lifecycle-mgt-select-details.js
NCLlifecycle_States_Edit_Ctrl nc-lifecycle-mgt-select-states-edit.js
NCLlifecycle_States_Ctrl nc-lifecycle-mgt-select-states.js
NCLlifecycle_TransitionAddEdit_Ctrl nc-lifecycle-mgt-select-transition-add.js
NCLlifecycle_Transition_Graph nc-lifecycle-mgt-select-transition-flow.js
NCLlifecycle_AssignNotificationOnTransition_Ctrl nc-lifecycle-mgt-select-transition-notification
NCLlifecycle_AssignRoleToTransition_Ctrl nc-lifecycle-mgt-select-transition-roles.js
NCLlifecycle_TransitionList_Ctrl nc-lifecycle-mgt-select-transition.js
NCLlifecycle_SelectLifecycle_Ctrl nc-lifecycle-mgt-select.js
NCLlifecycle_StatusAdd_Ctrl nc-lifecycle-mgt-status-add.js
NCLlifecycle_SelectState_Ctrl nc-lifecycle-mgt-status.js
ncLifecycle_Svc nc-lifecycle-mgt-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.NCNotificationMgt
NCNotificationMgt_ncNotificationMgtAccept_Ctrl nc-notification-mgt-accept-ctrl.js
NCNotificationMgt_ncNotificationMgt_Ctrl nc-notification-mgt-list-ctrl.js
NCNotification_ncNotificationMgtReject_Ctrl nc-notification-mgt-reject-ctrl.js
NCNotificationMgt_ncNotificationMgtselect_Ctrl nc-notification-mgt-select-ctrl.js
ncNotificationMgt_Svc nc-notification-mgt-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.NCSupervisor
ncSupervisor_ncChangeAccept_Ctrl nc-change-accept.js
ncSupervisor_ncChangeAdd_Ctrl nc-change-add.js
ncSupervisor_ncChangeList_Ctrl nc-change-list-ctrl.js
ncSupervisor_ncChangeReject_Ctrl nc-change-reject-ctrl.js
ncSupervisor_ncChangeSelect_View nc-change-select-ctrl.js
ncSuperVisor_ncChangeSelectDetails_Ctrl nc-change-select-details-ctrl.js
ncSupervisor_addDefect_Ctrl nc-supervisor-add-defect-ctrl.js
ncSupervisor_changeStatus_Ctrl nc-supervisor-changestatus-ctrl.js
ncSupervisor_list_Ctrl nc-supervisor-list-ctrl.js
ncSupervisor_select_Ctrl nc-supervisor-select-ctrl.js
ncSupervisor_selectDefects_Ctrl nc-supervisor-select-defects-ctrl.js
ncSupervisor_selectDetails_Ctrl nc.js-supervisor-select-details-ctrl
ncSupervisor_selectDocuments_Ctrl nc-supervisor-select-documents-ctrl.js
ncSupervisor_selectHistory_Ctrl nc-supervisor-select-history-ctrl.js
ncSupervisor_selectMachines_Ctrl nc-supervisor-select-machines-ctrl.js
ncSupervisor_selectMaterialItems_Ctrl nc-supervisor-select-materials-ctrl.js
ncSupervisor_selectTools_Ctrl nc-supervisor-select-tools-ctrl.js
ncSupervisor_Svc nc-supervisor-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.OperationStepCategory
operationStepCategory_select_Ctrl operation-step-category-select-ctrl.js
operationStepCategory_selectDetails_Ctrl operation-step-category-select-details-ctrl.js
operationStepCategory_selectAssociations_add_Ctrl operation-step-category-select-associations-add-
ctrl.js
operationStepCategory_selectAssociations_Ctrl operation-step-category-select-associations-ctrl.js
operationStepCategory_selectInterlocking_Ctrl operation-step-category-select-interlocking-ctrl.js
operationStepCategory_Svc operation-step-category-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.operatorLanding
UADM.operatorLanding mashup-module.js
u4dm.services.runtime u4dm-runtime-service.js
u4dm.services.runtime.wooperations uadm-runtime-wo-operations.js
u4dm.services.runtime.utils uadm-runtime-utils-service.js
u4dm.services.runtime.wosteps uadm-runtime-wo-steps.js
u4dm.services.runtime.dcd u4dm-dcd-service.js
u4dm.services.runtime.qms u4dm-runtime-qms.js
u4dm.services.runtime.execution-group-details- u4dm-execution-group-details-integration.js
integration
Name
operatorDetails
UADM.operatorLanding mashup-module.js
Name
operatorDetailsStep
UADM.operatorLanding mashup-module.js
Name
operatorDetailsTask
UADM.operatorLanding mashup-module.js
Name
operatorLanding
UADM.operatorLanding mashup-module.js
• Button Bar
• Work Order Routing
Name
Siemens.SimaticIT.U4DM.AppU4DM.WIP
wip_list_Ctrl Order-wip-list-ctrl.js
wip_operationList_Ctrl OrderOperation-wip-list-ctrl.js
wip_Svc Order-wip-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.catalogMgt
process_catalog_add_ctrl process-catalog-add-ctrl.js
process_catalog_edit_ctrl process-catalog-edit-ctrl.js
catalog_Svc catalog-srv.js
process_catalog_svc process-catalog-svc.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.teamMgt
Teams home.Siemens_SimaticIT_U4DM_AppU4DM_teamMgt
teamMgt_selectUsersAdd_Ctrl teamMgt-select-users-add-ctrl.js
teamMgt_Svc teamMgt-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.transportOperationExecution
transport_operation_buffer_details_Ctrl transport-operation-buffer-details-ctrl.js
transport_order_details_ctrl transport-operation-details-ctrl.js
transport_order_handling_unit_ctrl transport-operation-handling-unit-ctrl.js
transport_operation_handling_unit_materials_add_ct transport-operation-handling-unit-materials-add-
rl ctrl.js
transport_order_landing_ctrl transport-operation-landing-ctrl.js
transport_order_details_select_buffer_ctrl transport-operation-select-item-ctrl.js
transport_operation_srv transport-operation-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.users
Users home.Siemens_SimaticIT_U4DM_AppU4DM_users
Skills home.Siemens_SimaticIT_U4DM_AppU4DM_skills
userMgt_skillAdd_Controller skills-add-ctrl.js
usersMgt_skillsList_Ctrl skills-list-ctrl.js
usersMgt_skillSelect_Ctrl skills-select-ctrl.js
usersMgt_skillSelectDetails_Ctrl skills-select-details-ctrl.js
usersMgt_usersList_Ctrl users-list-ctrl.js
usersMgt_select_Ctrl users-select-ctrl.js
usersMgt_selectDetails_Ctrl users-select-details-ctrl.js
usersMgt_selectNpa_Ctrl users-select-npa-ctrl.js
users_Svc users-srv.js
skills_Svc skills-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.asBuilt
asBuilt_activHistory_Ctrl asBuilt-activity-history-ctrl.js
userTeamAssociationHistoryCtrl asBuilt-activity-history-team-ctrl.js
asBuilt_change_Ctrl asBuilt-change-ctrl.js
asBuilt_dataCollection_Ctrl asBuilt-datacollection-ctrl.js
asBuilt_dependencies_Ctrl asBuilt-dependencies-ctrl.js
asBuilt_details_Ctrl asBuilt-details-ctrl.js
asBuilt_dncDetails_Ctrl asBuilt-dnc-details-ctrl.js
asBuilt_documents_Ctrl asBuilt-document-ctrl.js
asBuilt_documents_runtime_Ctrl asBuilt-document-runtime-ctrl.js
asBuilt_hold_Ctrl asBuilt-hold-ctrl.js
asBuilt_main_Ctrl asBuilt-main-ctrl.js
asBuilt_material_Ctrl asBuilt-material-ctrl.js
asBuilt_material_history_Ctrl asBuilt-material-history-ctrl.js
asBuilt_materialNote_Ctrl asBuilt-material-note-ctrl.js
asBuilt_nonConformance_buyoff_Ctrl asBuilt-nonconformance-buyoff-ctrl.js
asBuilt_nonConformance_Ctrl asBuilt-nonconformance-ctrl.js
asBuilt_notes_Ctrl asBuilt-note-ctrl.js
asBuilt_operation_Ctrl asBuilt-operation-ctrl.js
asBuilt-operation-setpoints-ctrl asBuilt-operation-setpoints-ctrl.js
asBuilt_Pjf_Ctrl asBuilt-pjf-ctrl.js
asBuilt_qualityInspection_Ctrl asBuilt-qualityinspection-ctrl.js
asBuilt_reopenBatch_Ctrl asBuilt-reopen-batch-srv.js
asBuilt_reopenSerialize_Ctrl asBuilt-reopen-serialize-ctrl.js
asBuilt_rework_Ctrl asBuilt-rework-ctrl.js
asBuilt_serialNumber_Ctrl asBuilt-serialnumber-ctrl.js
asBuilt_step_Ctrl asBuilt-step-ctrl.js
asBuilt_subtrates_Ctrl asBuilt-substrate-ctrl.js
asBuilt_tools_Ctrl asBuilt-tool-ctrl.js
asBuilt-tool-setpoints-ctrl asBuilt-tool-setpoints-ctrl.js
asBuilt_workInstruction_automationNodeDetails_Ctrl asBuilt-workinstruction-automationNodeDetails-
ctrl.js
asBuilt_workInstruction_Ctrl asBuilt-workinstruction-ctrl.js
asBuilt_Svc asBuilt-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.asPlannedBOP
asPlannedBOP_List_Ctrl asPlannedBOP-list-ctrl.js
asPlannedBOP_Select_Ctrl asPlannedBOP-select-ctrl.js
asPlannedBOP_Svc asPlannedBOP-srv.js
Name
Siemens.SimaticIT.U4DM.AppU4DM.workOrderStatus
skillsSelectionAddToWorkOrderOperationCtrl workorder-operation-skill-add-ctrl.js
workOrderStatus_MasterPlanOperationAdd_Ctrl workorder-mp-operation-add-ctrl.js
workOrderStatus_workOrderAdd_Ctrl workorder-add-ctrl.js
workOrderStatus_workOrderAddSerialNumber_Ctrl workorder-select-serialnumber-add-ctrl.js
workOrderStatus_workOrderAlternativeOperationsGro workorder-select-alternative-operations-add-ctrl.js
upAdd_Ctrl
w workorder-select-alternative-operations-edit-ctrl.js
orkOrderStatus_workOrderAlternativeOperationsGrou
pEdit_Ctrl
workOrderStatus_workOrderMerge_Ctrl workorder-merge-ctrl.js
workOrderStatus_workOrderOperationAdd_Ctrl workorder-operation-add-ctrl.js
workOrderStatus_workOrderOperationSelectDepende workorder-select-operations-dependencies.js
ncies_Ctrl
workOrderStatus_workOrderOperationSelectDetails_C workorder-operation-select-details-ctrl.js
trl
workOrderStatus_workOrderPrekitDetails_Ctrl workorder-prekit-details-ctrl.js
workOrderStatus_workOrderPrekitEditView_Ctrl workorder-prekit-edit-ctrl.js
workOrderStatus_workOrderPrekitList_Ctrl workorder-prekit-list-ctrl.js
workOrderStatus_workOrderStatusPrekitSerialNumber workorder-prekit-snsearch-list-ctrl.js
Search_Ctrl
workOrderStatus_Svc workorder-status-srv.js
Available UI Components
• Button Bar
• Customizable Button Bar
• High Automation Header Bar
• Declare Defect
• Document Preview
• Execution Group Details
• Execution Groups Document Preview
• Execution Groups Header Bar
• High Automation Equipment List UI Component
• Material Production
• Material Tracking
• Operation Header Bar
• Operation List
• Part Program
• Print Job File
• Quality Inspection
• Step List
• Task Details (Deprecated)
• Task Container
• Task Viewer
• Work Order Routing
• Zero Touch Component Manager
Name
siemensSimaticitU4dmAppu4dmButtonbar
Layout
Size Rows Columns
Default 1 12
Min 1 1
Max 12 12
Destination Methods
setCurrentOperationId Sets the current Work Order Operation Id. wooId (number)
Source Events
Source Event Description Parameters
Customization
The following customizations on the ButtonBar UI Component are possible:
• hide standard buttons
• add custom buttons, with related custom business logic.
The following buttons are available by default:
• Start
• Pause
• Skip
• Complete
• StepComplete
• AddDocument
• goToInterlocking
• Notes
• Defects
• ChangeNonConformance
• Travelling
• ExecutionGroupLink
• RequestMaterial
• JoinTeam
• leaveTeam
• showDocumentPreview
• labelPrinting
• goToChangeSerialNumbers
• goToGenealogyLink
• freezeTargetQuantity
• woAbruptClosure
To customize the ButtonBar UI Component:
1. In the Opcenter Execution Foundation Solution Studio environment, select User Interface > Mashups.
2. Open the OperatorLanding > operatorDetailsTask UI Screen.
You can also customize the ButtonBar UI Component contained in the operatorLanding
and operatorDetailsStep UI Screens in the same manner.
4. To customize the behavior of each button, update the value of the tags of interest, as follows:
• To hide a button, set visibility to "false".
• To disable a button, set disabled to "false".
• To change the icon of the button, provide the path to the new icon.
• To change the alignment of the button, set align to "right".
• To add a custom button, copy the code provided for a standard button (see for example the code relative
to the Start button in the box below) and change the values accordingly. Make sure that the required
business logic is also available and linked to the button while configuring the wiring.
{
"type": "Command",
"id": "start",
"name":
"Siemens.SimaticIT.U4DM.AppU4DM.AppU4DM.DMPOMModel.Commands.UADMStartOperati
on",
"unauthorizedBehavior": "hide",
"svgIcon": "common/icons/cmdStart24.svg",
"label": "sit.u4dm.start",
"visibility": true,
"disabled": true,
"align": "left"
},
5. Click Apply
Name
siemensSimaticitU4dmAppu4dmCustomizablebuttonbar
Layout
Size Rows Columns
Default 2 12
Min 2 2
Max 4 12
Destination Methods
Destination Method Description Parameters
Source Events
Source Event Description Parameters
Customization
The following customizations on the CustomizableButtonBar UI Component are possible:
• hide standard buttons
• add custom buttons, with related custom business logic.
The following buttons are available by default:
• Start
• Pause
• Complete
• AddDocument
• Defects
• ChangeNonConformance
• RequestMaterial
• Notes
• JoinTeam
• leaveTeam
• ChangeMachine.
For more information, see section Configuring Runtime Screens of the Opcenter Execution Discrete Installation and
Configuration Manual.
Name
siemensSimaticitU4dmAppu4dmHighautomationheaderbar
Layout
Size Rows Columns
Default 2 12
Min 1 12
Max 2 12
Destination Methods
Destination Method Description Parameters
Source Events
Source Event Description Parameters
Name
siemensSimaticitU4dmAppu4dmDeclaredefect
Layout
Default 6 6
Min 6 6
Max 12 12
Destination Methods
Destination Method Description Parameters
Source Events
Source Event Description Parameters
Name
siemensSimaticitU4dmAppu4dmDocumentpreview
Layout
Size Rows Columns
Default 8 4
Min 6 3
Max 10 6
Destination Methods
Destination Method Description Parameters
Source Events
Name
siemensSimaticitU4dmAppu4dmExecgroupdetails
Layout
Size Rows Columns
Default 8 8
Min 6 4
Max 12 12
Destination Methods
Destination Method Description Parameters
Source Events
Source Event Description Parameters
Name
siemensSimaticitU4dmAppu4dmExecgroupdocumentpreview
Layout
Size Rows Columns
Default 8 4
Min 6 3
Max 12 12
Destination Methods
Destination Method Description Parameters
Name
siemensSimaticitU4dmAppu4dmExecgroupheaderbar
Layout
Size Rows Columns
Default 2 12
Min 1 1
Max 12 12
Destination Methods
Destination Method Description Parameters
Source Events
Name
siemensSimaticitU4dmAppu4dmHighautomationequipmentlist
Layout
Size Rows Columns
Default 6 12
Min 3 3
Max 12 12
Destination Methods
Destination Method Description Parameters
Source Events
Source Event Description Parameters
Name
siemensSimaticitU4dmAppu4dmMaterialproductioncomponent
Layout
Default 6 6
Min 3 1
Max 12 12
Destination Methods
None.
Source Events
None.
Name
siemensSimaticitU4dmAppu4dmMaterialtracking
Layout
Size Rows Columns
Default 6 6
Min 3 3
Max 12 12
Destination Methods
Destination Method Description Parameters
Source Events
None.
Name
siemensSimaticitU4dmAppu4dmOperationheaderbar
Layout
Size Rows Columns
Default 2 12
Min 1 1
Max 12 12
Destination Methods
Destination Method Description Parameters
Source Events
Source Event Description Parameters
Name
siemensSimaticitU4dmAppu4dmOperationlist
Layout
Size Rows Columns
Default 9 3
Min 1 1
Max 12 12
Destination Methods
Destination Method Description Parameters
Source Events
Source Event Description Parameters
allCanBeStartedChanged Whether or not all of the selected work order allCanBeStarted (boolean)
operations can be started has changed
allCanBePausedChanged Whether or not all of the selected work order allCanBePaused (boolean)
operations can be started has changed
allCanBeSkippedChanged Whether or not all of the selected work order allCanBeSkipped (boolean)
operations can be started has changed
Name
siemensSimaticitU4dmAppu4dmPartprogramcomponent
Layout
Size Rows Columns
Default 3 3
Min 2 3
Max 4 4
Destination Methods
None.
Source Events
None.
Name
siemensSimaticitU4dmAppu4dmPrintjobfileComponent
Layout
Size Rows Columns
Default 3 3
Min 2 3
Max 4 4
Destination Methods
None.
Source Events
None.
Name
siemensSimaticitU4dmAppu4dmQualityinspectioncomponent
Layout
Size Rows Columns
Default 3 3
Min 2 3
Max 4 4
Destination Methods
None.
Source Events
None.
Name
siemensSimaticitU4dmAppu4dmSteplist
Layout
Size Rows Columns
Default 8 2
Min 1 1
Max 12 12
Destination Methods
Destination Method Description Parameters
Source Events
Source Event Description Parameters
Name
siemensSimaticitU4dmAppu4dmTaskdetails
Layout
Default 8 4
Min 6 4
Max 12 8
Destination Methods
Destination Method Description Parameters
Source Events
Source Event Description Parameters
Customization
Here is an example of how to create a Custom Tab containing a Widget. Your starting point is a custom tab that
displays the NId of the Work Order Operation or Step in Runtime. The value displayed changes dynamically,
depending on which Work Order Operation or Step is selected.
Here are the contents of the sitTestStep widget for what concerns sitTestStep.html:
<div>{{vm.teststep}}</div>
Here are the contents of the sitTestStep widget for what concerns sitTestStep.js:
(function () {
'use strict';
function toSeeStepOpNid() {
return {
restrict: 'E',
scope: {},
bindToController: {
workOrderStep: '=?sitWorkOrderStep',
workOrderOperation: '=?sitWorkOrderOperation'
},
controller: toSeeStepOpNidCtrl,
controllerAs: 'vm',
templateUrl: 'Siemens.SimaticIT.U4DM.AppU4DM/widgets/testWidGet/
testWidGet.html'
};
}
var vm = this;
vm.teststep = 'null';
init();
function init() {
setWatches();
$timeout(function () {
// trick ICV to resize after side panel open. ICV uses jqLite to
bind to 'resize', so this should work
angular.element($window).trigger('resize');
});
}
function setWatches() {
$scope.$watch("vm.workOrderStep", refreshWithSignals);
$scope.$watch("vm.workOrderOperation", refreshWithSignals);
}
function refreshWithSignals() {
if (vm.workOrderStep)
{ vm.teststep = vm.workOrderStep.NId; }
else
{
vm.teststep = vm.workOrderOperation.NId;
}
}
}
})();
(function () {
'use strict';
var mod =angular.module('Siemens.SimaticIT.U4DM.AppU4DM.services.customServices');
mod.service('sitTaskDetail_custom', ['u4dm.services', sitTaskDetail_custom]);
function sitTaskDetail_custom() {
this.tabsConfig = function (tabs) {
tabs.push({
heading: 'CUSTOMTAB',
route: 'home.Siemens_SimaticIT_U4DM_AppU4DM_workOrder.select.customtab',
active: true,
visible: true,
content: '<sit-test-step sit-work-order-step="vm.workOrderStep" sit-work-order-
operation="vm.workOrderOperation"></sit-test-step>'
});
return tabs;
};
}})();
Name
siemensSimaticitU4dmAppu4dmTaskcontainer
Layout
Size Rows Columns
Default 8 4
6 4
Max 12 12
Destination Methods
Destination Method Description Parameters
initializeTaskDetailsForSte Initializes the Task Container UI • wooId (String that identifies the
ps Component for the Work Order Steps. Id of the Work Order Operation)
• wosId (String that identifies the
Id of the Work Order Step)
• executionGroupId (String that
identifies the Id of the Execution
Group).
Source Events
Source Event Description Parameters
operationCompleted Work Order Operation has been wooId (String that identifies the Id of
successfully completed. the Work Order Operation)
operationPaused Work Order Operation has been wooId (String that identifies the Id of
successfully paused. the Work Order Operation)
operationSkipped Work Order Operation has been wooId (String that identifies the Id of
successfully skipped. the Work Order Operation)
operationStarted Work Order Operation has been wooId (String that identifies the Id of
successfully started. the Work Order Operation)
Customization
The following customizations on the Task Container UI Component are possible:
• customization of the component's visibility according to the status of the Task. Available statuses for Tasks
are: InProgress, Error, Paused, Ready, Suspended, NotReady, Created, Failed, Aborted, Canceled, Skipped,
Completed.
• customization of the Contextual Command bar's visibility depending on the Task type. Available Tasks
are: UADMMaterialConsumptionTask, UADMToolUsageTask, UADMWorkInstructionTask,
UADMQualityInspectionTask, UADMPrintJobFilesTask, UADMPartProgramTask.
For more information, see section Configuring Runtime Screens of the Opcenter Execution Discrete Installation and
Configuration Manual.
Name
siemensSimaticitU4dmAppu4dmTaskviewer
Layout
Default 6 2
Min 6 2
Max 6 12
Destination Methods
Destination Method Description Parameters
Source Events
Source Event Description Parameters
Name
siemensSimaticitU4dmAppu4dmWorkorderrouting
Layout
Size Rows Columns
Default 6 6
Min 2 2
Max 12 12
Destination Methods
Destination Method Description Parameters
Source Events
None.
Name
siemensSimaticitU4dmAppu4dmZerotouchcomponent
Layout
Size Rows Columns
Default 1 1
Min 1 1
Max 6 6
Destination Methods
Destination Method Description Parameters
Source Events
Source Event Description Parameters