如何使用PDI创建带有序列号的GoodsTag?

2020-08-20 23:30发布

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

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


专家们,

  • 1,在PDI中,我们可以使用以下代码创建GoodsTag:

var aa = GoodsTagGenerator.Create();

if(aa.GoodsTagSpecification.Count()> 0)

{

foreach(aa.GoodsTagSpecification中的var goodtags)

{

goodtags.GoodsTagTypeCode =" 3";

goodtags.Text = ins_this.ProductDescription;

goodtags.MaterialKey.ProductID.content = ins_this.Product.content;

goodtags.GoodsTagMaterialQuantity.content = 1;

goodtags.GoodsTagMaterialQuantity.unitCode =" EA";

goodtags.IdentifiedStockKey.ID.content = ins_this.BatchCode.content;

goodtags.NextExternalSerialID =" abcdef";

}

}

其他

{

var goodtags = aa.GoodsTagSpecification.Create();

if(goodtags.IsSet())

{

goodtags.GoodsTagTypeCode =" 3";

goodtags.Text = ins_this.ProductDescription;

goodtags.MaterialKey.ProductID.content = ins_this.Product.content;

goodtags.GoodsTagMaterialQuantity.content = 1;

goodtags.GoodsTagMaterialQuantity.unitCode =" EA";

goodtags.IdentifiedStockKey.ID.content = ins_this.BatchCode.content;

goodtags.NextExternalSerialID =" abcdef";

//可疑代码

//goodtags.CreateIndividualMaterials();

//

//foreach(goodtags.GoodsTagSpecificationIndividualDetails.IndividualMaterial中的var ser)

//{

//ser.ServiceProcessInformation.SerialID =" 12345";

//}

//var ser = goodtags.GoodsTagSpecificationIndividualDetails.Create();

//if(ser.IsSet())

//{

//ser.IndividualMaterial.ParentIndividualProduct。 =" 12345";

//}

}

}

aa.GenerateGoodsTags();

  • 2,GoodsTag中有外部引用,但没有序列号,我想使用代码添加序列号,怎么办?
  • 3,在系统BO(GoodsTag,GoodsTagGenerator)中,节点IndividualMaterial无法使用事件(创建),并且我不知道如何使用函数CreateIndividualMaterials()?
  • 问题:如何使用PDI创建带有序列号的GoodsTag?

非常感谢。

Benny Huang

(68.6 kB)

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

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


专家们,

  • 1,在PDI中,我们可以使用以下代码创建GoodsTag:

var aa = GoodsTagGenerator.Create();

if(aa.GoodsTagSpecification.Count()> 0)

{

foreach(aa.GoodsTagSpecification中的var goodtags)

{

goodtags.GoodsTagTypeCode =" 3";

goodtags.Text = ins_this.ProductDescription;

goodtags.MaterialKey.ProductID.content = ins_this.Product.content;

goodtags.GoodsTagMaterialQuantity.content = 1;

goodtags.GoodsTagMaterialQuantity.unitCode =" EA";

goodtags.IdentifiedStockKey.ID.content = ins_this.BatchCode.content;

goodtags.NextExternalSerialID =" abcdef";

}

}

其他

{

var goodtags = aa.GoodsTagSpecification.Create();

if(goodtags.IsSet())

{

goodtags.GoodsTagTypeCode =" 3";

goodtags.Text = ins_this.ProductDescription;

goodtags.MaterialKey.ProductID.content = ins_this.Product.content;

goodtags.GoodsTagMaterialQuantity.content = 1;

goodtags.GoodsTagMaterialQuantity.unitCode =" EA";

goodtags.IdentifiedStockKey.ID.content = ins_this.BatchCode.content;

goodtags.NextExternalSerialID =" abcdef";

//可疑代码

//goodtags.CreateIndividualMaterials();

//

//foreach(goodtags.GoodsTagSpecificationIndividualDetails.IndividualMaterial中的var ser)

//{

//ser.ServiceProcessInformation.SerialID =" 12345";

//}

//var ser = goodtags.GoodsTagSpecificationIndividualDetails.Create();

//if(ser.IsSet())

//{

//ser.IndividualMaterial.ParentIndividualProduct。 =" 12345";

//}

}

}

aa.GenerateGoodsTags();

  • 2,GoodsTag中有外部引用,但没有序列号,我想使用代码添加序列号,怎么办?
  • 3,在系统BO(GoodsTag,GoodsTagGenerator)中,节点IndividualMaterial无法使用事件(创建),并且我不知道如何使用函数CreateIndividualMaterials()?
  • 问题:如何使用PDI创建带有序列号的GoodsTag?

非常感谢。

Benny Huang

(68.6 kB)
付费偷看设置
发送
7条回答
梦想连接
1楼 · 2020-08-21 00:24.采纳回答

使用代码:

if(goodtags.GoodsTagSpecificationIndividualDetails.Count()> 0)
{
foreach(goodtags.GoodsTagSpecificationIndividualDetails中的可变详细信息)
{
detail.IndividualMaterialSerialID =" 6633123456b";
< br>}

}

goodtags.CreateIndividualMaterials();

写出serialID可以,谢谢Rahul和专家。

最好的问候

Benny

SC_Yao
2楼-- · 2020-08-21 00:08

嗨Rahul,

能否请您给我一个PDI示例代码,以便在外向交货中创建GoodsTag(将包装和产品包装成包装)? 我没有找到关于此的任何文档...

谢谢和亲切的问候,

Ó。 Espinar

大简至美
3楼-- · 2020-08-21 00:05

你好Benny,

适用于不同用例(外向交货)的附加代码。 您需要根据需要进行更改。

BR
Rahul

一只江湖小虾
4楼-- · 2020-08-21 00:23

嗨Rahul,

非常感谢。

我使用补丁进行了测试,当GoodsTagSpecification.Create()和SiteLogisticsLot无法创建时,未设置SiteLogisticsLot,因此我无法添加SiteLogisticsLot的节点实例,因此分配失败。 也许我错过了一些步骤?

那里的东西一样吗?

最好的问候

Benny Huang

派大星 ヾ
5楼-- · 2020-08-21 00:18

你好本恩,

您需要创建" SerialNumberAssignment"的实例。

路径为:

GoodsTagGenerator-> GoodsTagSpecification-> SiteLogisticsLot-> MaterialOutput-> SerialNumberAssignment。 并分配您的序列号。

BR
Rahul

渐行渐远_HoldOn
6楼-- · 2020-08-21 00:05
  • ð直接我们不能在外向交货中附加序列号。

我们可以在后发货屏幕中附加"下一个序列号"字段,该字段来自以下站点物流批次业务对象。

应保留序列号的节点是SerialNumberAssignment节点。

用户需要执行以下提到的以下步骤:-

1。 在"修改现场物流批次,物料输出节点"之后编写脚本。 物料输出节点代表过帐发货屏幕中的行项目。

2。 从MATERIAL_OUTPUT导航到SERIAL _NUMBER_ASSIGNMENT。 BO:SITE_LOGISTICS_LOT节点:MATERIAL_OUTPUT关联:SERIAL _NUMBER_ASSIGNMENT

3。为每个序列号和属性创建SerialNumberAssignment节点的实例。填充SERIALID,MATERIALOUTPUTUUID。

4。 在MATERIAL_OUTPUT上的SerialNumberAssignment节点AFTER_MODIFY上调用Confirm Action可以多次被调用\

/*

为以下项添加SAP Business ByDesign脚本语言实现:

业务对象:SiteLogisticsLot

节点:MaterialOutput

事件:AfterModify

注意:

-要访问业务对象节点的元素,

使用路径表达式,例如this。

-要使用代码完成功能,请按CTRL + J。

-解决方案在以下情况下使用此脚本:

-修改包含此脚本的节点中任何字段的值。

-节点本身被同一解决方案中的另一个业务对象修改。

*/

导入ABSL;

//var b = 0;

//如果(b == 0)

//{

//如果(this.MTest == false)

//{

//if(!this.ConfirmMainInventorySeparatingValues.MaterialKey.ProductID.content.IsInitial())

//{

////var y = this.ConfirmMainInventorySeparatingValues.MaterialKey.ProductID。

//////var iin = SiteLogisticsLot.Retrieve(this.ID);

////var mat = iin.MaterialOutput.GetFirst();

////var instSerial = mat.SerialNumberAssignment.Create();

//

//

//var rt:SiteLogisticsLot.SerialNumberAssignment的元素;

//rt.SerialID =" 9";

//rt.MaterialOutputUUID.content = this.ConfirmMainInventorySeparatingValues.MaterialUUID.content;//" 00163e6b75071ed8bcf4a7691f622fee";

//var inst = this.SerialNumberAssignment.Create(rt);

//

//var a = 9;

//b = b + 1;

//this.MTest = true;

//

//}

//}

//}

BR

Rahul

微wx笑
7楼-- · 2020-08-21 00:01

你好Benn,

PFA。 15483832611.png

一周热门 更多>