如何使用ABSL脚本在保存时为服务凭单创建文档流(ActivityTask)。

2020-09-14 06:53发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我的情况是在保存服务...

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

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


专家们,

我的情况是在保存服务凭单的情况下,我需要创建ActivityTask作为后续文档,并带有一些默认值,并且应该在服务凭单的"文档流"选项卡中可见。

我在ServiceRequest.XBO的Event-BeforeSave.absl中使用了以下代码

导入ABSL;

导入AP.FO.Activity.Global;

导入AP.Common.Global;

导入AP.PC.ActivityManagement.Global;

var ServiceTicketKey:BusinessTransactionDocumentKey;

//ActivityTask:根节点

var elTask​​Root:ActivityTask的元素;

var instTask;

//ActivityTask:定义参与者节点

var elTask​​Party:ActivityTask.Party的元素;

var instParty;

//ActivityTask:定义服务订单文本集合

var TXT_TYPE_BODY_TEXT =" 10002";

var elTask​​TxtCollTxt:ActivityTask.TextCollection.Text的元素;

var elTask​​TxtCollTxtCntnt:ActivityTask.TextCollection.Text.TextContent的元素;

var instTaskTxtColl;

var instTaskTxtCollTxt;

var elPeriod:ActivityTask.Period的元素;

//ActivityTask:维护描述-必填

elTask​​Root.Name.content ="服务凭单" + this.ID.content.RemoveLeadingZeros();

//ActivityTask:创建新实例

instTask = ActivityTask.Create(elTask​​Root);

//任务:呼叫参与者

if(!instTask.ProcessorParty.IsSet()){

elTask​​Party.PartyKey.PartyID.content = this.ProcessorParty.PartyKey.PartyID.content;

instTask.ProcessorParty.Create(elTask​​Party);

}

其他

{

elTask​​Party.PartyKey.PartyID.content = this.ProcessorParty.PartyKey.PartyID.content;

instTask.ProcessorParty.Create(elTask​​Party);

}

//任务:将员工负责设置为强制性

if(!instTask.EmployeeResponsibleParty.IsSet()){

elTask​​Party.PartyKey.PartyID.content = this.ProcessorParty.PartyKey.PartyID.content; //设置员工ID

instTask.EmployeeResponsibleParty.Create(elTask​​Party);

}

其他

{

elTask​​Party.PartyKey.PartyID.content = this.ProcessorParty.PartyKey.PartyID.content; //设置员工ID

instTask.EmployeeResponsibleParty.Create(elTask​​Party);

}

//创建"正文"类型的文本

instTaskTxtColl = instTask.TextCollection.Create();

elTask​​TxtCollTxt.TypeCode.content = TXT_TYPE_BODY_TEXT;

instTaskTxtCollTxt = instTaskTxtColl.Text.Create(elTask​​TxtCollTxt);

elTask​​TxtCollTxtCntnt.Text.content ="任务活动的正文";

instTaskTxtCollTxt.TextContent.Create(elTask​​TxtCollTxtCntnt);

//尝试添加服务票证作为对ActivityTask的引用

ServiceTicketKey.BusinessTransactionDocumentID = this.ID; //服务单编号

ServiceTicketKey.BusinessTransactionDocumentTypeCode = this.ProcessingTypeCode; //"类型代码=" SRRE"

instTask.AddReferenceWithDataProvision(ServiceTicketKey);

但没有效果。 我可以看到已创建一个新任务,但该任务未作为后续或参考文档附加到服务单上。

任何线索。

我什至尝试

ActivityTask.CreateWithReference()

但是无法在任务上设置默认值。

此致

切拉。

4条回答
SAP砖家
2020-09-14 07:32

嗨,

我正在尝试类似的情况。但是要根据报价创建订单。 添加以下代码

我在CustomerQuote BeforeSave中添加了以下代码

 SalesOrder.CreateWithReference(this); 

销售订单已创建,但未创建为参考。 新订单没有与报价相关的任何信息,即没有帐户,项目/或其他信息。 另外,文档流为空。

请帮助

谢谢

Resmi

一周热门 更多>