1.1 报价单,订单自定义产品Picker
Event: pickerClick
Method: afterPickerSelected
const ext_SystemUtils = new xsyrpa.SystemUtils();
const ext_quote_CPQPriceSetsExtensionPoint = new xsyrpa.CPQPriceSetsExtensionPoint("quote_CPQPriceSetsExtensionPoint");
ext_quote_CPQPriceSetsExtensionPoint.on('pickerClick', (data, resolve, reject) => {
console.log(data);
ext_SystemUtils.openDialog({
url: 'customPickerUrl',
windowSize:2,
title: "自定义选择产品"
}).then(function(data){
ext_quote_CPQPriceSetsExtensionPoint.afterPickerSelected({ids: data});
});
});
1.2 报价单、订单明细字段值的设置和清空
Method: setDetailData
const ext_quote_CPQPriceSetsExtensionPoint = new xsyrpa.CPQPriceSetsExtensionPoint("quote_CPQPriceSetsExtensionPoint");
ext_quote_CPQPriceSetsExtensionPoint.getDetailData().then((data) => {
console.log(data);
ext_quote_CPQPriceSetsExtensionPoint.setDetailData({
detailId: data[0].id,
detailUuid: data[0].detailUuid,
apiKey: 'quantity',
value: 10
});
ext_quote_CPQPriceSetsExtensionPoint.setDetailData({
detailId: data[0].id,
detailUuid: data[0].detailUuid,
apiKey: 'price',
value: ''
});
data[1].quantity = 10;
data[1].detailRemarks = 'edit by RPA';
ext_quote_CPQPriceSetsExtensionPoint.setDetailData({
data: data
});
ext_quote_CPQPriceSetsExtensionPoint.refreshDetail();
});
1.3 报价单、订单明细字段设置必填 、 只读、 可见属性
Method:
setColumnRequired 设置列必填
setCellRequired 设置单元格必填
setColumnEditable 设置列只读/可编辑
setCellEditable 设置单元格必填/可编辑
setColumnVisible 设置列可见
setCellVisible 设置单元格可见
const ext_quote_CPQPriceSetsExtensionPoint = new xsyrpa.CPQPriceSetsExtensionPoint("quote_CPQPriceSetsExtensionPoint");
ext_quote_CPQPriceSetsExtensionPoint.on('beforeLoad', (data,resolve)=>
{
ext_quote_CPQPriceSetsExtensionPoint.setColumnRequired({
config:[{
entityType:'',
itemApiKey: 'detailRemarks',
required: true
}]
});
resolve();
})
ext_quote_CPQPriceSetsExtensionPoint.on('afterAddDetail', () => {
ext_quote_CPQPriceSetsExtensionPoint.getDetailData().then((data) => {
ext_quote_CPQPriceSetsExtensionPoint.setCellRequired({
detailId: data[0].id,
detailUuid: data[0].detailUuid,
itemApiKey: 'detailRemarks',
required: true
});
});
});
1.4 报价单、订单明细行操作按钮设置可见性
Method: setDetailButtonVisible
const ext_quote_CPQPriceSetsExtensionPoint = new xsyrpa.CPQPriceSetsExtensionPoint("quote_CPQPriceSetsExtensionPoint");
ext_quote_CPQPriceSetsExtensionPoint.getDetailData().then((data) => {
ext_quote_CPQPriceSetsExtensionPoint.setDetailButtonVisible({
detailId: data[0].id,
detailUuid: data[0].detailUuid,
buttonType: 'delete',
visible: false
});
});
1.5 报价单、订单明细删除后事件
Event:afterDelDetail
const ext_quote_CPQPriceSetsExtensionPoint = new xsyrpa.CPQPriceSetsExtensionPoint("quote_CPQPriceSetsExtensionPoint");
ext_quote_CPQPriceSetsExtensionPoint.on('afterDelDetail', (data) => {console.log(data)});
1.6 报价单、订单明细删除行,增加行
Method:
delDetailData
hideDetail
clearDetailData
afterPickerSelected
ext_quote_CPQPriceSetsExtensionPoint.delDetailData({
detailId,
detailUuid,
hide
});
ext_quote_CPQPriceSetsExtensionPoint.hideDetail({
detailUuid,
detailId,
visible
});
ext_quote_CPQPriceSetsExtensionPoint.clearDetailData();
ext_quote_CPQPriceSetsExtensionPoint.afterPickerSelected({ids: data});
2.1 商机、自定义实体(旧表单)明细自定义Picker
const ext_opportunityProduct_Form_opportunityProduct = new xsyrpa.FormSubEntityTableExtensionPoint("opportunityProduct.Form#*#opportunityProduct-919228631532061");
const ext_SystemUtils = new xsyrpa.SystemUtils();
ext_opportunityProduct_Form_opportunityProduct.on('pickerClick', function(data){
console.log(data);
ext_SystemUtils.openDialog({
url: 'https://www.reynanote.com/?id=963469313770032',
windowSize:2,
title: "自定义选择产品"
}).then(function(data){
ext_opportunityProduct_Form_opportunityProduct.afterPickerSelected({ids: data});
});
});
function(){
let msg = {
isvData: 1,2,3
doClose: true
};
window.top.postMessage(msg, '*');
}
2.2 商机、自定义实体(旧表单)明细字段值的设置和清空
const oppDetail = new xsyrpa.FormSubEntityTableExtensionPoint("opportunityProduct.SubForm.EntityType#*#opportunityProduct_6822980");
oppDetail.setCellValue({
rowIndex: 1,
itemApiKey: 'amount',
value: 20
});
oppDetail.setCellValue({
rowIndex: 1,
itemApiKey: 'priceUnit',
value: ''
});
2.3 商机、自定义实体(旧表单)明细字段的只读,可见,必填属性
Method:
setCellVisible //设置单元格可见
setCellReadonly //设置单元格只读
setCellEditable // 设置单元格可编辑
setCellRequired //设置单元格必填
const oppDetail = new xsyrpa.FormSubEntityTableExtensionPoint("opportunityProduct.SubForm.EntityType#*#opportunityProduct_6822980");
oppDetail.setCellVisible({
rowIndex: 1,
itemApiKey: 'priceUnit',
visible: false
});
oppDetail.setCellReadonly({
rowIndex: 1,
itemApiKey: 'amount',
readonly: true
});
oppDetail.setCellEditable({
rowIndex: 1,
itemApiKey: 'standardPrice',
editable: true
});
oppDetail.setCellRequired({
rowIndex: 1,
itemApiKey: 'discount',
required: true
});
2.4 商机、自定义实体(旧表单)明细行操作按钮设置可见性
Method: setOperateButtonVisible
const oppDetail = new xsyrpa.FormSubEntityTableExtensionPoint("opportunityProduct.SubForm.EntityType#*#opportunityProduct_6822980");
oppDetail.setOperateButtonVisible({
buttonType: "delete",
visible: false,
rowIndex: 1,
})
2.5 商机、自定义实体(旧表单)明细行删除后事件
Event: deleteRowData
const oppDetail = new xsyrpa.FormSubEntityTableExtensionPoint("opportunityProduct.SubForm.EntityType#*#opportunityProduct_6822980");
oppDetail.on("deleteRowData", (data) => {console.log(data)})
2.6 商机、自定义实体(旧表单)明细删除行、增加行
Method:
deleteDetail
clearDetails
const oppDetail = new xsyrpa.FormSubEntityTableExtensionPoint("opportunityProduct.SubForm.EntityType#*#opportunityProduct_6822980");
oppDetail.deleteDetail({
rowIndex: 1,
})
oppDetail.clearDetails();
const ext_opportunityProduct_Form_opportunityProduct = new xsyrpa.FormSubEntityTableExtensionPoint("opportunityProduct.Form#*#opportunityProduct-919228631532061");
ext_opportunityProduct_Form_opportunityProduct.afterPickerSelected({ids: data});
const ext_order_CPQPriceSetsExtensionPoint = new xsyrpa.CPQPriceSetsExtensionPoint("order_CPQPriceSetsExtensionPoint");
ext_order_CPQPriceSetsExtensionPoint.on('beforeSave', async function(data, resolve, reject){
const detailData = await ext_order_CPQPriceSetsExtensionPoint.getDetailData();
console.log(detailData);
let pass = true;
for(let i=0; i< detailData.length ; i++){
const currentDetail = detailData[i];
if(currentDetail['productId-label'] == "1234"){
pass = false;
ext_order_CPQPriceSetsExtensionPoint.setDetailError({
detailUuid: currentDetail.detailUuid,
errorMsg: '不能选择产品1234'
});
}
}
if(pass){
resolve();
}else {
reject();
}
});