需要在SAP E采购中批量删除主协议和合同文档。

2020-09-22 14:15发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我是SAP C...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我是SAP CLM的新手,我们需要删除主协议和合同文件。

我们在excel中存储了大量的主协议和合同文件。

我们需要从CLM系统中批量删除它。

感谢您的帮助

谢谢

Vaibhav Dhoke

1条回答
clasier
2020-09-22 14:45 .采纳回答

以下解决方案已成功实施。

我已经编写了一个显式调用的脚本,该脚本将在计划的作业下执行。

第1步:我们需要创建两个布尔扩展,分别假设X,Y分别代表主协议和合同文档,这将作为删除MA和CD的标志。 当我在系统中上传CSV文件时,这些扩展名被标记为已选中。

步骤2:表FCI_SYS_DYN_CLASSES存储存在的类的扩展表。 我们需要找到扩展表sDynTableName,该表通过使用主协议类ID(即1004)来存储主协议的扩展名

查询就像是从FCI_SYS_DYN_CLASSES中的SELECT TABLE_NAME,其中ASSOC_CLASSID = 1004并且COLLECTION_NAME为NULL

第3步:一旦有了从第2步获得的sDynTableName动态扩展表,我们就必须查找那些使用诸如SELECT T1.UNIQUE_DOC_NAME FROM FCI_CONTRACT T1之类的查询来检查X的主协议," + sDynTableName +" T2 THER.T2.PARENT_OBJECT_ID = T1.OBJECTID并且X = 1

第4步:第3步的查询结果是主协议的收集,

我们将遍历此集合并获取已检查Y的参考合同文件(假设CDRef)

如果要删除合同文件,请使用以下代码。

contractDocumentHome.upgradeToEdit(CDRef);

contractDocumentHome.delete(CDRef);

contractDocumentHome.downgradeToView(CDRef);

如果我们想直接删除主协议。

MasterAgreementHome.upgradeToEdit(MARef);

MasterAgreementHome.delete(MARef)

MasterAgreementHome.save(MARef);

其中MARef是检查X的主协议参考。

根据您的要求(条件),使用上述方法删除主协议和合同文件。

contractDocumentHome和MasterAgreementHome分别是合同文档和主协议的home bean引用,可以通过以下IBeanHomeLocator的查找方法获得

MasterAgreementHome = IBeanHomeLocator.lookup(session,com.sap.eso.api.contracts.ContractIBeanHomeIfc.sHOME_NAME);

contractDocumentHome = IBeanHomeLocator.lookup(session,com.sap.eso.api.doccommon.doc.contract.ContractDocumentIBeanHomeIfc.sHOME_NAME);

P.S:应该进行正确的异常处理。

一周热门 更多>