技术文章
SAP PO B2B Add-On NRO(编号范围对象)使用情况
B2BIC NRO通常用于EDI场景,其中要求按顺序向客户发送文档号,这在idoc的情况下是不可能的,因为idoc不是按顺序为每个客户创建的。
一般在B2B交易中,流最可能是通过AS2/SFTP等IDoc到EDI。如果客户想要连续的文件号,或者我应该说顺序。当将IDoc编号作为文档编号发送时,这是不可能的。
在中间件(SAP PI/PO)中,我们在b2bic中有NRO,可以用来满足这一需求。
要在系统中设置NRO, B2B附加组件需要安装在PO服务器上。我假设它已经安装在服务器上,需要执行以下步骤来使用范围对象。
通过在浏览器中调用下面的URL转到B2B集成驾驶舱。
主机http:// < > < >港/ b2bic
B2B集成驾驶舱主页
点击NRO维护,然后点击创建to-create范围对象的个数。
创建范围对象
以下是需要填写给我的NRO活动的字段。
编号范围对象名称 | / B2B / < PARTNER_NAME_OBJ > |
描述 | 提供描述 |
最小值 | 合作伙伴文件编号的起始范围 |
最大值 | 合作伙伴的文档编号的最后一个范围 |
格式化值长度 | 与图形映射中的format by number一样,只需要给出多少个前导0作为格式 |
警告级别(%) | 以百分比为单位指定警告级别,以防数字范围即将达到最大值 |
旋转 | 检查情况下,如果数字范围是它的最大值,它将从它的最小值再次开始 |
注意:当旋转被选中时,警告级别将不再运行,因为在达到NRO最大范围时发出警告没有意义。
创建范围对象
建议:每当创建NRO时,尝试在name部分给出合作伙伴的名称,并使用值映射/Fix value来获得该名称。当您的PO视图中有一个针对所有客户的公共映射时,这将很有帮助。您可以根据需求在所有外发EDI消息中使用这些对象。
一旦你创建了一个对象,它就会开始反映更多的字段,这些字段也只有在对象创建之后才可以编辑。在这里,如果为现有的接口或合作伙伴创建了一个范围对象,您可以编辑最后发送的合作伙伴的最后一个文档编号。
EDI范围对象
要在映射中使用此NRO,您需要使用一个常量并输入以下字符序列。
B2B_UEBNR美元< Number_Range_Object_Name >B2B_END_UEBNR美元
这将为您提供范围对象的下一个数字,以同样的方式,如果您需要获得范围对象的最后一个/前一个数字,您可以在映射中使用常量编写以下字符序列。
B2B_UEBNR_BEFORE美元<Number_Range_Object_Name>B2B_END_UEBNR美元
示例:在NRO中,您提供了对象的名称PARTNERDOCNUM
然后在Message中映射它应该如何配置。
消息映射中的范围对象
同样根据设计,它可以通过使用值映射从ID中获取或使用固定值来更改,这取决于设计。
注意:如果您试图在本地运行(ESR)中测试您的MM/OM,这将不起作用。这将只在端到端场景中可操作。
要获得范围对象值,需要在接收通道中配置一个模块
模块名称:localejbs / TransmissionNumberModule
这个模块有几个参数,可以根据需求使用:
multipleNumbersPerMessage | 如果要在消息中插入多个连续数字,则使用此参数。 |
useLocalLock | 如果您希望获得正在使用的单个NRO上的锁,而不是全局锁,则使用此参数。默认值为true。 |
sourceEncoding | 定义输入消息的编码。如果未指定,默认值为ISO-8859-15。 |
destinationEncoding | 定义输出文件的编码。如果未指定,默认值为ISO-8859-15。 |
范围对象模块配置
当您端到端运行该场景时,该模块将写入实际的范围号来代替您在消息映射中写入的常量。
注意:如果您正在验证消息监视器中的范围编号值,那么它将不存在,您将只在负载中看到常量值。由于在消息转换中尚未调用该模块,因此只有在有效负载被传输到通信通道时才会调用该模块。所以在接收端,只有这个值会出现。
如果能在评论区看到社区的反应或反馈就太好了。
欲了解SAP PO的更多细节和博客:
https://community.sap.com/topics/process-orchestration
社区小组链接:
//www.bouseh.com/tags/477916618626075516391832082074785