Need help calling hierarchical copying from front-end
Hi Team,
I'm trying to call hierarchical copying from the front-end of my Creatio application, but I'm having some trouble. I've read in the Creatio documentation that I should use the callService() method, but I'm not sure how to use it correctly.
I saw an example in the documentation that uses the "ProductBankCustomerJourney" package and the "ProductConditionDetailV2" schema, but I can't seem to find these in my application.
Can anyone provide me with some guidance on how to call hierarchical copying from the front-end of my Creatio application? Any help or advice would be greatly appreciated.
Thanks in advance!
Like
Hello,
This package is a part of the bank-sales-bank-customer-journey installation files so probably that's why you cannot find it in your app. It would be easier to get such a demo or onsite installation files and review the logic there. Here are the methods from the ProductConditionDetailV2 schema:
getCopyRecordConfig: function() {
return {
serviceName: "HierarchyDataCopyingService",
methodName: "CreateRecordCopy",
data: {
schemaName: this.entitySchemaName,
recordId: this.$ActiveRow
},
scope: this
};
},
...
copyRecordServiceCallback: function(response) {
response = response || {};
response = response.CreateRecordCopyResult || {};
this.hideBodyMask();
if (!response.success) {
var errorMessage = this.extractErrorMessage(response);
this.showInformationDialog(errorMessage);
return;
}
const copiedRecordId = response.recordId;
this.openCard(configurationEnums.CardStateV2.COPY, this.Terrasoft.GUID_EMPTY, copiedRecordId);
},
...
validateConditionsDueDateCallback: function(result) {
if (result.success) {
this.callCopyRecordService();
return;
}
this.showInformationDialog(result.message);
},
....
copyRecord: function() {
this.isCanCopyRecord(function(isCan) {
if (!isCan) {
var denyMessage = this.get("Resources.Strings.RecordRightsErrorMessage");
this.showInformationDialog(denyMessage);
return;
}
this.validateConditionsDueDate(this.validateConditionsDueDateCallback, this);
}, this);
},
....
callCopyRecordService: function() {
this.showBodyMask();
var config = this.getCopyRecordConfig();
this.callService(config, this.copyRecordServiceCallback, this);
},The chain is: copyRecord -> validateConditionsDueDate -> validateConditionsDueDateCallback -> callCopyRecordService -> getCopyRecordConfig -> copyRecordServiceCallback.
To call the service the config is used:
serviceName: "HierarchyDataCopyingService",
methodName: "CreateRecordCopy",
data: {
schemaName: this.entitySchemaName,
recordId: this.$ActiveRow
},and the actual call is performed:
this.callService(config, this.copyRecordServiceCallback, this);callback function determines what should be done once the service response is received.