@sapui5/sap.fe.core 1.94.0 → 1.96.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AnnotationHelper.js +3 -3
- package/src/sap/fe/core/AppComponent.js +10 -41
- package/src/sap/fe/core/AppStateHandler.js +18 -4
- package/src/sap/fe/core/BaseController.js +1 -1
- package/src/sap/fe/core/BusyLocker.js +13 -1
- package/src/sap/fe/core/CommonUtils.js +372 -9
- package/src/sap/fe/core/ExtensionAPI.js +1 -1
- package/src/sap/fe/core/PageController.js +11 -3
- package/src/sap/fe/core/RouterProxy.js +59 -69
- package/src/sap/fe/core/Synchronization.js +1 -1
- package/src/sap/fe/core/TemplateComponent.js +9 -3
- package/src/sap/fe/core/TemplateModel.js +1 -1
- package/src/sap/fe/core/TransactionHelper.js +157 -111
- package/src/sap/fe/core/actions/draft.js +1 -1
- package/src/sap/fe/core/actions/messageHandling.js +1 -1
- package/src/sap/fe/core/actions/nonDraft.js +1 -1
- package/src/sap/fe/core/actions/operations.js +25 -3
- package/src/sap/fe/core/actions/sticky.js +1 -1
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +89 -54
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +14 -7
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +128 -25
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +197 -210
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +844 -168
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +903 -189
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.js +31 -17
- package/src/sap/fe/core/controllerextensions/PageReady.ts +50 -15
- package/src/sap/fe/core/controllerextensions/Paginator.js +20 -4
- package/src/sap/fe/core/controllerextensions/Placeholder.js +134 -271
- package/src/sap/fe/core/controllerextensions/Routing.js +1 -1
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +20 -7
- package/src/sap/fe/core/controllerextensions/SideEffects.js +2 -3
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +13 -12
- package/src/sap/fe/core/controllerextensions/ViewState.js +174 -7
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +39 -34
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +35 -0
- package/src/sap/fe/core/controls/CommandExecution.js +1 -1
- package/src/sap/fe/core/controls/ConditionalWrapper.js +1 -1
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +4 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
- package/src/sap/fe/core/controls/FieldWrapper.js +1 -1
- package/src/sap/fe/core/controls/FilterBar.js +1 -1
- package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +45 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +5 -8
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +83 -23
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +2 -6
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +25 -18
- package/src/sap/fe/core/converters/ConverterContext.js +18 -4
- package/src/sap/fe/core/converters/ConverterContext.ts +13 -3
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +4 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js +855 -868
- package/src/sap/fe/core/converters/MetaModelConverter.ts +763 -826
- package/src/sap/fe/core/converters/annotations/DataField.js +52 -2
- package/src/sap/fe/core/converters/annotations/DataField.ts +52 -2
- package/src/sap/fe/core/converters/controls/Common/Action.js +6 -1
- package/src/sap/fe/core/converters/controls/Common/Action.ts +3 -0
- package/src/sap/fe/core/converters/controls/Common/Chart.js +85 -6
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +80 -2
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +15 -16
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +16 -30
- package/src/sap/fe/core/converters/controls/Common/Form.js +17 -8
- package/src/sap/fe/core/converters/controls/Common/Form.ts +11 -3
- package/src/sap/fe/core/converters/controls/Common/KPI.js +287 -109
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +314 -139
- package/src/sap/fe/core/converters/controls/Common/Table.js +273 -105
- package/src/sap/fe/core/converters/controls/Common/Table.ts +319 -111
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +8 -20
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +11 -15
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +44 -15
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +41 -19
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +74 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +50 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +15 -7
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +27 -6
- package/src/sap/fe/core/converters/helpers/Aggregation.js +18 -30
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +17 -28
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -2
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +2 -2
- package/src/sap/fe/core/converters/helpers/ID.js +1 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +2 -2
- package/src/sap/fe/core/converters/helpers/IssueManager.js +3 -3
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +2 -2
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +11 -6
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +9 -5
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +15 -2
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +14 -14
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +2 -2
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +73 -8
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +70 -10
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +82 -16
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +100 -17
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.ts +8 -3
- package/src/sap/fe/core/fpm/Component.js +2 -2
- package/src/sap/fe/core/helpers/BindingExpression.js +17 -2
- package/src/sap/fe/core/helpers/BindingExpression.ts +14 -1
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -1
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -3
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.js +28 -1
- package/src/sap/fe/core/helpers/PasteHelper.js +7 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
- package/src/sap/fe/core/helpers/StableIdHelper.js +2 -2
- package/src/sap/fe/core/helpers/StableIdHelper.ts +1 -1
- package/src/sap/fe/core/library.js +2 -2
- package/src/sap/fe/core/library.support.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +30 -1
- package/src/sap/fe/core/messagebundle_ar.properties +14 -0
- package/src/sap/fe/core/messagebundle_bg.properties +14 -0
- package/src/sap/fe/core/messagebundle_ca.properties +15 -1
- package/src/sap/fe/core/messagebundle_cs.properties +14 -0
- package/src/sap/fe/core/messagebundle_cy.properties +14 -0
- package/src/sap/fe/core/messagebundle_da.properties +14 -0
- package/src/sap/fe/core/messagebundle_de.properties +14 -0
- package/src/sap/fe/core/messagebundle_el.properties +14 -0
- package/src/sap/fe/core/messagebundle_en.properties +14 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +14 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +14 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -2
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +14 -0
- package/src/sap/fe/core/messagebundle_es.properties +21 -7
- package/src/sap/fe/core/messagebundle_es_MX.properties +15 -1
- package/src/sap/fe/core/messagebundle_et.properties +14 -0
- package/src/sap/fe/core/messagebundle_fi.properties +14 -0
- package/src/sap/fe/core/messagebundle_fr.properties +18 -4
- package/src/sap/fe/core/messagebundle_fr_CA.properties +14 -0
- package/src/sap/fe/core/messagebundle_hi.properties +14 -0
- package/src/sap/fe/core/messagebundle_hr.properties +14 -0
- package/src/sap/fe/core/messagebundle_hu.properties +14 -0
- package/src/sap/fe/core/messagebundle_id.properties +14 -0
- package/src/sap/fe/core/messagebundle_it.properties +14 -0
- package/src/sap/fe/core/messagebundle_iw.properties +15 -1
- package/src/sap/fe/core/messagebundle_ja.properties +14 -0
- package/src/sap/fe/core/messagebundle_kk.properties +14 -0
- package/src/sap/fe/core/messagebundle_ko.properties +14 -0
- package/src/sap/fe/core/messagebundle_lt.properties +14 -0
- package/src/sap/fe/core/messagebundle_lv.properties +14 -0
- package/src/sap/fe/core/messagebundle_ms.properties +14 -0
- package/src/sap/fe/core/messagebundle_nl.properties +18 -4
- package/src/sap/fe/core/messagebundle_no.properties +15 -1
- package/src/sap/fe/core/messagebundle_pl.properties +15 -1
- package/src/sap/fe/core/messagebundle_pt.properties +14 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +14 -0
- package/src/sap/fe/core/messagebundle_ro.properties +14 -0
- package/src/sap/fe/core/messagebundle_ru.properties +14 -0
- package/src/sap/fe/core/messagebundle_sh.properties +14 -0
- package/src/sap/fe/core/messagebundle_sk.properties +14 -0
- package/src/sap/fe/core/messagebundle_sl.properties +14 -0
- package/src/sap/fe/core/messagebundle_sv.properties +14 -0
- package/src/sap/fe/core/messagebundle_th.properties +14 -0
- package/src/sap/fe/core/messagebundle_tr.properties +14 -0
- package/src/sap/fe/core/messagebundle_uk.properties +14 -0
- package/src/sap/fe/core/messagebundle_vi.properties +14 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +14 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +14 -0
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js +114 -44
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +2 -2
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +12 -2
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +3 -14
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +3 -10
- package/src/sap/fe/core/templating/EntitySetHelper.js +13 -3
- package/src/sap/fe/core/templating/EntitySetHelper.ts +4 -0
- package/src/sap/fe/core/templating/FilterHelper.js +2 -2
- package/src/sap/fe/core/templating/FilterHelper.ts +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js +41 -3
- package/src/sap/fe/core/templating/UIFormatters.ts +74 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAPUI5
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2022 SAP SE. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
sap.ui.define(
|
|
6
6
|
[
|
|
@@ -60,10 +60,8 @@ sap.ui.define(
|
|
|
60
60
|
messageHandling
|
|
61
61
|
) {
|
|
62
62
|
"use strict";
|
|
63
|
-
|
|
64
63
|
var CreationMode = FELibrary.CreationMode,
|
|
65
64
|
ProgrammingModel = FELibrary.ProgrammingModel;
|
|
66
|
-
|
|
67
65
|
/* Make sure that the mParameters is not the oEvent */
|
|
68
66
|
function getParameters(mParameters) {
|
|
69
67
|
if (mParameters && mParameters.getMetadata && mParameters.getMetadata().getName() === "sap.ui.base.Event") {
|
|
@@ -71,13 +69,11 @@ sap.ui.define(
|
|
|
71
69
|
}
|
|
72
70
|
return mParameters || {};
|
|
73
71
|
}
|
|
74
|
-
|
|
75
72
|
return BaseObject.extend("sap.fe.core.TransactionHelper", {
|
|
76
73
|
constructor: function(oAppComponent, oLockObject) {
|
|
77
74
|
this._oAppComponent = oAppComponent;
|
|
78
75
|
this.oLockObject = oLockObject;
|
|
79
76
|
},
|
|
80
|
-
|
|
81
77
|
getProgrammingModel: function(oContext) {
|
|
82
78
|
if (!this.sProgrammingModel && oContext) {
|
|
83
79
|
if (ModelHelper.isDraftSupported(oContext.getModel().getMetaModel(), oContext.getPath())) {
|
|
@@ -92,7 +88,6 @@ sap.ui.define(
|
|
|
92
88
|
}
|
|
93
89
|
return this.sProgrammingModel;
|
|
94
90
|
},
|
|
95
|
-
|
|
96
91
|
/**
|
|
97
92
|
* Creates a new document.
|
|
98
93
|
*
|
|
@@ -106,60 +101,64 @@ sap.ui.define(
|
|
|
106
101
|
* @param {map} [mParameters.keepTransientContextOnFailed] If set, the context stays in the list if the POST failed and POST will be repeated with the next change
|
|
107
102
|
* @param oResourceBundle
|
|
108
103
|
* @param messageHandler
|
|
104
|
+
* @param bFromCopyPaste
|
|
109
105
|
* @returns {Promise} Promise resolves with new binding context
|
|
110
106
|
* @ui5-restricted
|
|
111
107
|
* @final
|
|
112
108
|
*/
|
|
113
|
-
createDocument: function(oMainListBinding, mParameters, oResourceBundle, messageHandler) {
|
|
109
|
+
createDocument: function(oMainListBinding, mParameters, oResourceBundle, messageHandler, bFromCopyPaste) {
|
|
114
110
|
var oNewDocumentContext,
|
|
115
111
|
that = this,
|
|
116
112
|
bSkipRefresh,
|
|
117
113
|
oModel = oMainListBinding.getModel(),
|
|
118
114
|
oMetaModel = oModel.getMetaModel(),
|
|
119
115
|
sMetaPath = oMetaModel.getMetaPath(oMainListBinding.getHeaderContext().getPath()),
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
116
|
+
sCreateHash = this._getAppComponent()
|
|
117
|
+
.getRouterProxy()
|
|
118
|
+
.getHash(),
|
|
119
|
+
oComponentData = this._getAppComponent().getComponentData(),
|
|
120
|
+
oStartupParameters = (oComponentData && oComponentData.startupParameters) || {},
|
|
121
|
+
sNewAction = !oMainListBinding.isRelative()
|
|
122
|
+
? this._getNewAction(oStartupParameters, sCreateHash, oMetaModel, sMetaPath)
|
|
123
|
+
: undefined,
|
|
124
124
|
oCreationPromise,
|
|
125
125
|
mBindingParameters = { "$$patchWithoutSideEffects": true },
|
|
126
126
|
sMessagesPath = oMetaModel.getObject(sMetaPath + "/@com.sap.vocabularies.Common.v1.Messages/$Path"),
|
|
127
127
|
sProgrammingModel,
|
|
128
|
-
sBusyPath = "/busy"
|
|
128
|
+
sBusyPath = "/busy",
|
|
129
|
+
sFunctionName =
|
|
130
|
+
oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Common.v1.DefaultValuesFunction") ||
|
|
131
|
+
oMetaModel.getObject(
|
|
132
|
+
ModelHelper.getTargetEntitySet(oMetaModel.getContext(sMetaPath)) +
|
|
133
|
+
"@com.sap.vocabularies.Common.v1.DefaultValuesFunction"
|
|
134
|
+
);
|
|
129
135
|
|
|
130
136
|
if (sMessagesPath) {
|
|
131
137
|
mBindingParameters["$select"] = sMessagesPath;
|
|
132
138
|
}
|
|
133
|
-
|
|
134
139
|
mParameters = getParameters(mParameters);
|
|
135
|
-
|
|
136
140
|
if (!oMainListBinding) {
|
|
137
141
|
return Promise.reject("Binding required for new document creation");
|
|
138
142
|
}
|
|
139
|
-
|
|
140
143
|
sProgrammingModel = this.getProgrammingModel(oMainListBinding);
|
|
141
144
|
if (sProgrammingModel !== ProgrammingModel.Draft && sProgrammingModel !== ProgrammingModel.Sticky) {
|
|
142
145
|
return Promise.reject("Create document only allowed for draft or sticky session supported services");
|
|
143
146
|
}
|
|
144
|
-
|
|
145
147
|
if (mParameters.busyMode === "Local") {
|
|
146
148
|
// in case of local busy mode we use the list binding name
|
|
147
149
|
// there's no APY yet so we have to use the .sId TODO provide a public method?
|
|
148
150
|
sBusyPath = "/busyLocal/" + oMainListBinding.sId;
|
|
149
151
|
}
|
|
150
152
|
BusyLocker.lock(this.oLockObject, sBusyPath);
|
|
151
|
-
|
|
152
153
|
bSkipRefresh = !mParameters.refreshList;
|
|
153
|
-
|
|
154
154
|
var oResourceBundleCore = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core");
|
|
155
|
-
|
|
156
155
|
if (sNewAction) {
|
|
157
156
|
oCreationPromise = this.callAction(
|
|
158
157
|
sNewAction,
|
|
159
158
|
{
|
|
160
159
|
contexts: oMainListBinding.getHeaderContext(),
|
|
161
160
|
showActionParameterDialog: true,
|
|
162
|
-
label:
|
|
161
|
+
label: this._getSpecificCreateActionDialogLabel(oMetaModel, sMetaPath, sNewAction, oResourceBundleCore),
|
|
163
162
|
bindingParameters: mBindingParameters,
|
|
164
163
|
parentControl: mParameters.parentControl,
|
|
165
164
|
bIsCreateAction: true
|
|
@@ -173,35 +172,62 @@ sap.ui.define(
|
|
|
173
172
|
var aNonComputedVisibleKeyFields = bIsNewPageCreation
|
|
174
173
|
? CommonUtils.getNonComputedVisibleFields(oMetaModel, sMetaPath)
|
|
175
174
|
: [];
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
)
|
|
191
|
-
|
|
192
|
-
|
|
175
|
+
sFunctionName = bFromCopyPaste ? null : sFunctionName;
|
|
176
|
+
oCreationPromise = operations
|
|
177
|
+
.callFunctionImport(sFunctionName, oModel)
|
|
178
|
+
.then(function(oContext) {
|
|
179
|
+
if (oContext) {
|
|
180
|
+
return oContext.getObject();
|
|
181
|
+
} else {
|
|
182
|
+
return undefined;
|
|
183
|
+
}
|
|
184
|
+
})
|
|
185
|
+
.catch(function(oError) {
|
|
186
|
+
Log.error("Error while calling function Import " + sFunctionName, oError);
|
|
187
|
+
throw oError;
|
|
188
|
+
})
|
|
189
|
+
.then(function(oData) {
|
|
190
|
+
mParameters.data = oData ? Object.assign({}, oData, mParameters.data) : mParameters.data;
|
|
191
|
+
if (mParameters.data) {
|
|
192
|
+
delete mParameters.data["@odata.context"];
|
|
193
|
+
}
|
|
194
|
+
if (aNonComputedVisibleKeyFields.length > 0) {
|
|
195
|
+
var oTransientListBinding = oModel.bindList(
|
|
196
|
+
oMainListBinding.getPath(),
|
|
197
|
+
oMainListBinding.getContext(),
|
|
198
|
+
[],
|
|
199
|
+
[],
|
|
200
|
+
{
|
|
201
|
+
$$updateGroupId: "submitLater"
|
|
202
|
+
}
|
|
203
|
+
);
|
|
204
|
+
oTransientListBinding.refreshInternal = function() {};
|
|
205
|
+
oNewDocumentContext = oTransientListBinding.create(mParameters.data, bSkipRefresh);
|
|
206
|
+
return that._launchDialogWithKeyFields(
|
|
207
|
+
oMainListBinding,
|
|
208
|
+
oTransientListBinding,
|
|
209
|
+
oNewDocumentContext,
|
|
210
|
+
aNonComputedVisibleKeyFields,
|
|
211
|
+
oModel,
|
|
212
|
+
mParameters,
|
|
213
|
+
messageHandler,
|
|
214
|
+
sFunctionName
|
|
215
|
+
);
|
|
216
|
+
} else {
|
|
217
|
+
oNewDocumentContext = oMainListBinding.create(mParameters.data, bSkipRefresh, mParameters.createAtEnd);
|
|
218
|
+
return that.onAfterCreateCompletion(
|
|
219
|
+
oMainListBinding,
|
|
220
|
+
oNewDocumentContext,
|
|
221
|
+
mParameters,
|
|
222
|
+
oResourceBundleCore
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
})
|
|
226
|
+
.catch(function(oError) {
|
|
227
|
+
Log.error("Error while creating the new document", oError);
|
|
228
|
+
throw oError;
|
|
193
229
|
});
|
|
194
|
-
} else {
|
|
195
|
-
oNewDocumentContext = oMainListBinding.create(mParameters.data, bSkipRefresh, mParameters.createAtEnd);
|
|
196
|
-
oCreationPromise = that.onAfterCreateCompletion(
|
|
197
|
-
oMainListBinding,
|
|
198
|
-
oNewDocumentContext,
|
|
199
|
-
mParameters,
|
|
200
|
-
oResourceBundleCore
|
|
201
|
-
);
|
|
202
|
-
}
|
|
203
230
|
}
|
|
204
|
-
|
|
205
231
|
return oCreationPromise
|
|
206
232
|
.then(function(oResult) {
|
|
207
233
|
if (!oMainListBinding.isRelative()) {
|
|
@@ -209,7 +235,6 @@ sap.ui.define(
|
|
|
209
235
|
that._bCreateMode = true;
|
|
210
236
|
}
|
|
211
237
|
oNewDocumentContext = oNewDocumentContext || (oResult && oResult.response);
|
|
212
|
-
|
|
213
238
|
// TODO: where does this one coming from???
|
|
214
239
|
if (oResult && oResult.bConsiderDocumentModified) {
|
|
215
240
|
that.handleDocumentModifications();
|
|
@@ -229,7 +254,6 @@ sap.ui.define(
|
|
|
229
254
|
// this line shows the expected console error Uncaught (in promise) Error: Request canceled: POST Travel; group: submitLater
|
|
230
255
|
oNewDocumentContext.delete("$direct");
|
|
231
256
|
}
|
|
232
|
-
|
|
233
257
|
return Promise.reject(oError);
|
|
234
258
|
});
|
|
235
259
|
})
|
|
@@ -237,7 +261,6 @@ sap.ui.define(
|
|
|
237
261
|
BusyLocker.unlock(that.oLockObject, sBusyPath);
|
|
238
262
|
});
|
|
239
263
|
},
|
|
240
|
-
|
|
241
264
|
/**
|
|
242
265
|
* Find the active contexts of the documents, only for the draft roots.
|
|
243
266
|
*
|
|
@@ -245,14 +268,12 @@ sap.ui.define(
|
|
|
245
268
|
* @static
|
|
246
269
|
* @param {sap.ui.model.odata.v4.Context[]} aContexts Contexts Either one context or an array with contexts to be deleted
|
|
247
270
|
* @param bFindActiveContexts
|
|
248
|
-
|
|
249
271
|
* @returns {Array} Array of the active contexts
|
|
250
272
|
*/
|
|
251
273
|
findActiveDraftRootContexts: function(aContexts, bFindActiveContexts) {
|
|
252
274
|
if (!bFindActiveContexts) {
|
|
253
275
|
return Promise.resolve();
|
|
254
276
|
}
|
|
255
|
-
|
|
256
277
|
var activeContexts = aContexts.reduce(function(aResult, oContext) {
|
|
257
278
|
var oMetaModel = oContext.getModel().getMetaModel();
|
|
258
279
|
var sMetaPath = oMetaModel.getMetaPath(oContext.getPath());
|
|
@@ -283,7 +304,6 @@ sap.ui.define(
|
|
|
283
304
|
})
|
|
284
305
|
);
|
|
285
306
|
},
|
|
286
|
-
|
|
287
307
|
afterDeleteProcess: function(mParameters, checkBox, aContexts, oResourceBundle) {
|
|
288
308
|
var oInternalModelContext = mParameters.internalModelContext;
|
|
289
309
|
if (oInternalModelContext && oInternalModelContext.getProperty("deleteEnabled") != undefined) {
|
|
@@ -324,7 +344,6 @@ sap.ui.define(
|
|
|
324
344
|
);
|
|
325
345
|
}
|
|
326
346
|
},
|
|
327
|
-
|
|
328
347
|
/**
|
|
329
348
|
* Delete one or multiple document(s).
|
|
330
349
|
*
|
|
@@ -355,12 +374,10 @@ sap.ui.define(
|
|
|
355
374
|
oDeleteMessage = {
|
|
356
375
|
title: oResourceBundleCore.getText("C_COMMON_OBJECT_PAGE_DELETE")
|
|
357
376
|
};
|
|
358
|
-
|
|
359
377
|
BusyLocker.lock(this.oLockObject);
|
|
360
378
|
if (!Array.isArray(vContexts)) {
|
|
361
379
|
vContexts = [vContexts];
|
|
362
380
|
}
|
|
363
|
-
|
|
364
381
|
Promise.resolve(this.getProgrammingModel(vContexts[0]))
|
|
365
382
|
.then(function(sProgrammingModel) {
|
|
366
383
|
if (mParameters) {
|
|
@@ -616,7 +633,6 @@ sap.ui.define(
|
|
|
616
633
|
bDialogConfirmed = true;
|
|
617
634
|
BusyLocker.lock(that.oLockObject);
|
|
618
635
|
var aContexts = aDeletableContexts;
|
|
619
|
-
|
|
620
636
|
return that
|
|
621
637
|
.findActiveDraftRootContexts(aContexts, mParameters.bFindActiveContexts)
|
|
622
638
|
.then(function(activeContexts) {
|
|
@@ -660,7 +676,6 @@ sap.ui.define(
|
|
|
660
676
|
BusyLocker.unlock(that.oLockObject);
|
|
661
677
|
});
|
|
662
678
|
};
|
|
663
|
-
|
|
664
679
|
var oDialog = new Dialog({
|
|
665
680
|
title: sTitle,
|
|
666
681
|
state: "Warning",
|
|
@@ -704,13 +719,11 @@ sap.ui.define(
|
|
|
704
719
|
Log.warning("Couldn't get Programming model");
|
|
705
720
|
fnReject();
|
|
706
721
|
});
|
|
707
|
-
|
|
708
722
|
return new Promise(function(resolve, reject) {
|
|
709
723
|
fnReject = reject;
|
|
710
724
|
fnResolve = resolve;
|
|
711
725
|
});
|
|
712
726
|
},
|
|
713
|
-
|
|
714
727
|
/**
|
|
715
728
|
* Edits a document.
|
|
716
729
|
*
|
|
@@ -728,17 +741,13 @@ sap.ui.define(
|
|
|
728
741
|
var that = this,
|
|
729
742
|
sProgrammingModel = this.getProgrammingModel(oContext),
|
|
730
743
|
oEditPromise;
|
|
731
|
-
|
|
732
744
|
if (!oContext) {
|
|
733
745
|
return Promise.reject(new Error("Binding context to active document is required"));
|
|
734
746
|
}
|
|
735
|
-
|
|
736
747
|
this._bIsModified = false;
|
|
737
748
|
BusyLocker.lock(that.oLockObject);
|
|
738
|
-
|
|
739
749
|
// before triggering the edit action we'll have to remove all bound transition messages
|
|
740
750
|
messageHandler.removeTransitionMessages();
|
|
741
|
-
|
|
742
751
|
if (sProgrammingModel === ProgrammingModel.Draft) {
|
|
743
752
|
oEditPromise = draft.createDraftFromActiveDocument(oContext, this._getAppComponent(), {
|
|
744
753
|
bPreserveChanges: true,
|
|
@@ -751,7 +760,6 @@ sap.ui.define(
|
|
|
751
760
|
BusyLocker.unlock(that.oLockObject);
|
|
752
761
|
return Promise.reject(new Error("Edit is only allowed for draft or sticky session supported services"));
|
|
753
762
|
}
|
|
754
|
-
|
|
755
763
|
return oEditPromise
|
|
756
764
|
.then(function(oNewContext) {
|
|
757
765
|
that._bCreateMode = false;
|
|
@@ -768,7 +776,6 @@ sap.ui.define(
|
|
|
768
776
|
BusyLocker.unlock(that.oLockObject);
|
|
769
777
|
});
|
|
770
778
|
},
|
|
771
|
-
|
|
772
779
|
/**
|
|
773
780
|
* Cancel 'edit' mode of a document.
|
|
774
781
|
*
|
|
@@ -791,15 +798,12 @@ sap.ui.define(
|
|
|
791
798
|
if (!oContext) {
|
|
792
799
|
return Promise.reject("No context exists. Pass a meaningful context");
|
|
793
800
|
}
|
|
794
|
-
|
|
795
801
|
BusyLocker.lock(that.oLockObject);
|
|
796
|
-
|
|
797
802
|
mParameters = getParameters(mParameters);
|
|
798
803
|
var oParamsContext = oContext,
|
|
799
804
|
oCancelButton = mParameters.cancelButton,
|
|
800
805
|
oModel = oParamsContext.getModel(),
|
|
801
806
|
sCanonicalPath;
|
|
802
|
-
|
|
803
807
|
return Promise.resolve(this.getProgrammingModel(oContext))
|
|
804
808
|
.then(function(sPModel) {
|
|
805
809
|
sProgrammingModel = sPModel;
|
|
@@ -869,7 +873,6 @@ sap.ui.define(
|
|
|
869
873
|
});
|
|
870
874
|
}
|
|
871
875
|
});
|
|
872
|
-
|
|
873
876
|
case ProgrammingModel.Sticky:
|
|
874
877
|
return sticky.discardDocument(oContext).then(function(oContext) {
|
|
875
878
|
if (oContext) {
|
|
@@ -883,14 +886,12 @@ sap.ui.define(
|
|
|
883
886
|
}
|
|
884
887
|
return false;
|
|
885
888
|
});
|
|
886
|
-
|
|
887
889
|
default:
|
|
888
890
|
return Promise.reject("Cancel document only allowed for draft or sticky session supported services");
|
|
889
891
|
}
|
|
890
892
|
})
|
|
891
893
|
.then(function(context) {
|
|
892
894
|
that._bIsModified = false;
|
|
893
|
-
|
|
894
895
|
// remove existing bound transition messages
|
|
895
896
|
messageHandler.removeTransitionMessages();
|
|
896
897
|
// show unbound messages
|
|
@@ -907,7 +908,6 @@ sap.ui.define(
|
|
|
907
908
|
BusyLocker.unlock(that.oLockObject);
|
|
908
909
|
});
|
|
909
910
|
},
|
|
910
|
-
|
|
911
911
|
/**
|
|
912
912
|
* Saves the document.
|
|
913
913
|
*
|
|
@@ -926,16 +926,13 @@ sap.ui.define(
|
|
|
926
926
|
var that = this,
|
|
927
927
|
sProgrammingModel = this.getProgrammingModel(oContext),
|
|
928
928
|
oSavePromise;
|
|
929
|
-
|
|
930
929
|
if (!oContext) {
|
|
931
930
|
return Promise.reject(new Error("Binding context to draft document is required"));
|
|
932
931
|
}
|
|
933
932
|
// in case of saving / activating the bound transition messages shall be removed before the PATCH/POST
|
|
934
933
|
// is sent to the backend
|
|
935
934
|
messageHandler.removeTransitionMessages();
|
|
936
|
-
|
|
937
935
|
BusyLocker.lock(that.oLockObject);
|
|
938
|
-
|
|
939
936
|
if (sProgrammingModel === ProgrammingModel.Draft) {
|
|
940
937
|
oSavePromise = draft.activateDocument(oContext, this._getAppComponent());
|
|
941
938
|
} else if (sProgrammingModel === ProgrammingModel.Sticky) {
|
|
@@ -944,7 +941,6 @@ sap.ui.define(
|
|
|
944
941
|
BusyLocker.unlock(that.oLockObject);
|
|
945
942
|
return Promise.reject(new Error("Save is only allowed for draft or sticky session supported services"));
|
|
946
943
|
}
|
|
947
|
-
|
|
948
944
|
return oSavePromise
|
|
949
945
|
.then(function(oActiveDocument) {
|
|
950
946
|
var bNewObject =
|
|
@@ -979,7 +975,6 @@ sap.ui.define(
|
|
|
979
975
|
BusyLocker.unlock(that.oLockObject);
|
|
980
976
|
});
|
|
981
977
|
},
|
|
982
|
-
|
|
983
978
|
/**
|
|
984
979
|
* Calls a bound/unbound action.
|
|
985
980
|
*
|
|
@@ -1011,7 +1006,6 @@ sap.ui.define(
|
|
|
1011
1006
|
if (!sActionName) {
|
|
1012
1007
|
return Promise.reject("Provide name of action to be executed");
|
|
1013
1008
|
}
|
|
1014
|
-
|
|
1015
1009
|
// action imports are not directly obtained from the metaModel by it is present inside the entityContainer
|
|
1016
1010
|
// and the acions it refers to present outside the entitycontainer, hence to obtain kind of the action
|
|
1017
1011
|
// split() on its name was required
|
|
@@ -1183,7 +1177,6 @@ sap.ui.define(
|
|
|
1183
1177
|
}
|
|
1184
1178
|
return messageHandler.showMessageDialog();
|
|
1185
1179
|
},
|
|
1186
|
-
|
|
1187
1180
|
/**
|
|
1188
1181
|
* Handles validation errors for the 'discard' action.
|
|
1189
1182
|
*
|
|
@@ -1294,7 +1287,6 @@ sap.ui.define(
|
|
|
1294
1287
|
handleDocumentModifications: function() {
|
|
1295
1288
|
this._bIsModified = true;
|
|
1296
1289
|
},
|
|
1297
|
-
|
|
1298
1290
|
/**
|
|
1299
1291
|
* Retrieves the owner component.
|
|
1300
1292
|
*
|
|
@@ -1310,7 +1302,6 @@ sap.ui.define(
|
|
|
1310
1302
|
_getAppComponent: function() {
|
|
1311
1303
|
return this._oAppComponent;
|
|
1312
1304
|
},
|
|
1313
|
-
|
|
1314
1305
|
_launchDialogWithKeyFields: function(
|
|
1315
1306
|
oListBinding,
|
|
1316
1307
|
oTransientListBinding,
|
|
@@ -1318,7 +1309,8 @@ sap.ui.define(
|
|
|
1318
1309
|
mFields,
|
|
1319
1310
|
oModel,
|
|
1320
1311
|
mParameters,
|
|
1321
|
-
messageHandler
|
|
1312
|
+
messageHandler,
|
|
1313
|
+
sFunctionName
|
|
1322
1314
|
) {
|
|
1323
1315
|
var that = this,
|
|
1324
1316
|
oDialog,
|
|
@@ -1432,7 +1424,7 @@ sap.ui.define(
|
|
|
1432
1424
|
title: CommonUtils.getTranslatedText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE", oResourceBundle),
|
|
1433
1425
|
content: [oDialogContent],
|
|
1434
1426
|
beginButton: {
|
|
1435
|
-
text: CommonUtils.getTranslatedText("
|
|
1427
|
+
text: CommonUtils.getTranslatedText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE_BUTTON", oResourceBundle),
|
|
1436
1428
|
type: "Emphasized",
|
|
1437
1429
|
press: function(oEvent) {
|
|
1438
1430
|
var oCreateButton = oEvent.getSource();
|
|
@@ -1472,30 +1464,14 @@ sap.ui.define(
|
|
|
1472
1464
|
}
|
|
1473
1465
|
},
|
|
1474
1466
|
beforeOpen: function() {
|
|
1475
|
-
//check if there are dialog default values to be retrieved from DefaultValuesFunction
|
|
1476
|
-
|
|
1477
|
-
var oMetaModel = oDialog.getModel().getMetaModel(),
|
|
1478
|
-
sListBindingPath = oListBinding.getPath(),
|
|
1479
|
-
sFunctionName = oMetaModel.getObject(
|
|
1480
|
-
sListBindingPath + "@com.sap.vocabularies.Common.v1.DefaultValuesFunction"
|
|
1481
|
-
);
|
|
1482
|
-
|
|
1483
1467
|
if (sFunctionName) {
|
|
1484
|
-
|
|
1485
|
-
.
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
oTransientContext.setProperty(mFields[i], aValues.getProperty(mFields[i]));
|
|
1490
|
-
}
|
|
1491
|
-
}
|
|
1492
|
-
})
|
|
1493
|
-
.catch(function(oError) {
|
|
1494
|
-
Log.error("Error while calling function Import " + sFunctionName, oError);
|
|
1495
|
-
});
|
|
1468
|
+
for (var i = 0; i < Object.keys(mParameters.data).length; i++) {
|
|
1469
|
+
if (mParameters.data && mFields.indexOf(Object.keys(mParameters.data)[i]) > -1) {
|
|
1470
|
+
oTransientContext.setProperty(mFields[i], mParameters.data[mFields[i]]);
|
|
1471
|
+
}
|
|
1472
|
+
}
|
|
1496
1473
|
}
|
|
1497
1474
|
},
|
|
1498
|
-
|
|
1499
1475
|
afterClose: function() {
|
|
1500
1476
|
// show footer as per UX guidelines when dialog is not open
|
|
1501
1477
|
oDialog.getBindingContext("internal").setProperty("isCreateDialogOpen", false);
|
|
@@ -1540,12 +1516,10 @@ sap.ui.define(
|
|
|
1540
1516
|
fnResolve = resolve;
|
|
1541
1517
|
fnReject = reject;
|
|
1542
1518
|
});
|
|
1543
|
-
|
|
1544
1519
|
// Workaround suggested by OData model v4 colleagues
|
|
1545
1520
|
var fnCreateCompleted = function(oEvent) {
|
|
1546
1521
|
var oContext = oEvent.getParameter("context"),
|
|
1547
1522
|
bSuccess = oEvent.getParameter("success");
|
|
1548
|
-
|
|
1549
1523
|
if (oContext === oNewDocumentContext) {
|
|
1550
1524
|
oListBinding.detachCreateCompleted(fnCreateCompleted, this);
|
|
1551
1525
|
if (!bSuccess) {
|
|
@@ -1553,7 +1527,6 @@ sap.ui.define(
|
|
|
1553
1527
|
if (!mParameters.keepTransientContextOnFailed) {
|
|
1554
1528
|
// the context is deleted
|
|
1555
1529
|
oError.bDeleteTransientContext = true;
|
|
1556
|
-
|
|
1557
1530
|
// this is needed to avoid console errors TO be checked with model colleagues
|
|
1558
1531
|
oContext
|
|
1559
1532
|
.created()
|
|
@@ -1563,11 +1536,9 @@ sap.ui.define(
|
|
|
1563
1536
|
.catch(function(oError) {
|
|
1564
1537
|
Log.trace("transient creation context deletion error", oError);
|
|
1565
1538
|
});
|
|
1566
|
-
|
|
1567
1539
|
// if current state is transient (...), browser will come back to previous state
|
|
1568
1540
|
oError.navigateBackFromTransientState = true;
|
|
1569
1541
|
}
|
|
1570
|
-
|
|
1571
1542
|
fnReject(oError);
|
|
1572
1543
|
} else {
|
|
1573
1544
|
fnResolve();
|
|
@@ -1575,8 +1546,83 @@ sap.ui.define(
|
|
|
1575
1546
|
}
|
|
1576
1547
|
};
|
|
1577
1548
|
oListBinding.attachCreateCompleted(fnCreateCompleted, this);
|
|
1578
|
-
|
|
1579
1549
|
return oPromise;
|
|
1550
|
+
},
|
|
1551
|
+
/**
|
|
1552
|
+
* Retrieves the name of the NewAction to be executed.
|
|
1553
|
+
*
|
|
1554
|
+
* @function
|
|
1555
|
+
* @static
|
|
1556
|
+
* @private
|
|
1557
|
+
* @name sap.fe.core.TransactionHelper._getNewAction
|
|
1558
|
+
* @memberof sap.fe.core.TransactionHelper
|
|
1559
|
+
* @param {object} oStartupParameters Startup parameters of the application
|
|
1560
|
+
* @param {string} sCreateHash Hash to be checked for action type
|
|
1561
|
+
* @param {object} oMetaModel The MetaModel used to check for NewAction parameter
|
|
1562
|
+
* @param {string} sMetaPath The MetaPath
|
|
1563
|
+
* @returns {string} The name of the action
|
|
1564
|
+
* @ui5-restricted
|
|
1565
|
+
* @final
|
|
1566
|
+
**/
|
|
1567
|
+
_getNewAction: function(oStartupParameters, sCreateHash, oMetaModel, sMetaPath) {
|
|
1568
|
+
var sNewAction;
|
|
1569
|
+
|
|
1570
|
+
if (oStartupParameters && oStartupParameters.preferredMode && sCreateHash.indexOf("i-action=createWith") > -1) {
|
|
1571
|
+
var sPreferredMode = oStartupParameters.preferredMode[0];
|
|
1572
|
+
sNewAction =
|
|
1573
|
+
sPreferredMode.indexOf("createWith:") > -1 ? sPreferredMode.substr(sPreferredMode.lastIndexOf(":") + 1) : undefined;
|
|
1574
|
+
} else {
|
|
1575
|
+
sNewAction =
|
|
1576
|
+
oMetaModel && oMetaModel.getObject !== undefined
|
|
1577
|
+
? oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported/NewAction") ||
|
|
1578
|
+
oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Common.v1.DraftRoot/NewAction")
|
|
1579
|
+
: undefined;
|
|
1580
|
+
}
|
|
1581
|
+
return sNewAction;
|
|
1582
|
+
},
|
|
1583
|
+
/**
|
|
1584
|
+
* Retrieves the label for the title of a specific create action dialog, e.g. Create Sales Order from Quotation.
|
|
1585
|
+
*
|
|
1586
|
+
* The following priority is applied:
|
|
1587
|
+
* 1. label of line-item annotation.
|
|
1588
|
+
* 2. label annotated in the action.
|
|
1589
|
+
* 3. "Create" as a constant from i18n.
|
|
1590
|
+
*
|
|
1591
|
+
* @function
|
|
1592
|
+
* @static
|
|
1593
|
+
* @private
|
|
1594
|
+
* @name sap.fe.core.TransactionHelper._getSpecificCreateActionDialogLabel
|
|
1595
|
+
* @memberof sap.fe.core.TransactionHelper
|
|
1596
|
+
* @param {object} oMetaModel The MetaModel used to check for the NewAction parameter
|
|
1597
|
+
* @param {string} sMetaPath The MetaPath
|
|
1598
|
+
* @param {string} sNewAction Contains the name of the action to be executed
|
|
1599
|
+
* @param {object} oResourceBundleCore ResourceBundle to access the default Create label
|
|
1600
|
+
* @returns {string} The label for the Create Action Dialog
|
|
1601
|
+
* @ui5-restricted
|
|
1602
|
+
* @final
|
|
1603
|
+
**/
|
|
1604
|
+
_getSpecificCreateActionDialogLabel: function(oMetaModel, sMetaPath, sNewAction, oResourceBundleCore) {
|
|
1605
|
+
var fnGetLabelFromLineItemAnnotation = function() {
|
|
1606
|
+
if (oMetaModel && oMetaModel.getObject(sMetaPath + "/@com.sap.vocabularies.UI.v1.LineItem")) {
|
|
1607
|
+
var iLineItemIndex = oMetaModel
|
|
1608
|
+
.getObject(sMetaPath + "/@com.sap.vocabularies.UI.v1.LineItem")
|
|
1609
|
+
.findIndex(function(oLineItem) {
|
|
1610
|
+
var aLineItemAction = oLineItem.Action ? oLineItem.Action.split("(") : undefined;
|
|
1611
|
+
return aLineItemAction ? aLineItemAction[0] === sNewAction : false;
|
|
1612
|
+
});
|
|
1613
|
+
return iLineItemIndex > -1
|
|
1614
|
+
? oMetaModel.getObject(sMetaPath + "/@com.sap.vocabularies.UI.v1.LineItem")[iLineItemIndex].Label
|
|
1615
|
+
: undefined;
|
|
1616
|
+
} else {
|
|
1617
|
+
return undefined;
|
|
1618
|
+
}
|
|
1619
|
+
};
|
|
1620
|
+
|
|
1621
|
+
return (
|
|
1622
|
+
fnGetLabelFromLineItemAnnotation() ||
|
|
1623
|
+
(oMetaModel && oMetaModel.getObject(sMetaPath + "/" + sNewAction + "@com.sap.vocabularies.Common.v1.Label")) ||
|
|
1624
|
+
(oResourceBundleCore && oResourceBundleCore.getText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE"))
|
|
1625
|
+
);
|
|
1580
1626
|
}
|
|
1581
1627
|
});
|
|
1582
1628
|
}
|