云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

企业邮箱_华为云空间多大_新用户

小七 141 0

增强NF-e入站物流工作区的示例ABAP编码

此博客将提供一个示例编码,用于实现BAdI确定入站NF-e物流工作区的自定义UI。您可以使用此BAdI替换流程步骤"准备收货过账"的现有用户界面(UI)Web动态用户界面

实现BAdI"物流工作场所自定义用户界面的确定"

BAdI使用界面/XNFE/IF\u BAdI\u GET\u Custom\u UI。系统使用GET\u CUSTOM\u UI方法调用这个接口,在这里您可以向NFE框架公开您的自定义UI组件。您可以根据导入参数

CNPJ确定不同的UI组件,进程类型,或流程步骤

虽然我们目前只支持一个步骤(准备收货过账),但流程步骤是BAdI的导入参数(因为以后可能会支持其他步骤)。

下面是增强实现的实现类中的一个例子;让我们调用组件Z\u INBOUND\u deliver:

METHOD/xnfe/if\u badi\u get\u custom\u ui~ get\u custom\u ui。*此UI仅用于流程类型"正常采购"如果iv\u proctep='GRMMCHCK'和iv\u proctyp='NORMPRCH'。ev\u component='Z\u INBOUND\u deliver'。ev\u component\u window='MAIN'。ev\u component\u plug='DEFAULT'。

ENDIF。ENDMETHOD.

增强NF-e物流工作区

在物流工作区屏幕上,如果NF-e处理状态允许,您可以选择一个NF-e并选择执行流程步骤>准备收货过帐。在准备货物收据过帐屏幕上,您可以设置NF-e的状态并返回NF-e物流工作区。通过我们的自定义用户界面(设置状态按钮下方),我们希望在设置步骤状态之前提供在ERP中更改入站交货数据的可能性:

创建新的Web Dynpro组件

要从ERP数据库可视化入站交货数据,我们将使用可编辑的ALV表。这里介绍的实现使用了样例组件WDT\u FLIGHTLIST\u EDIT in package SWDP\u DEMO\u教程的副本作为起点。

要从ERP数据库读取交付数据,我们使用函数BAPI\u delivery\u GETLIST。返回交货的物料数据的相关输出表是具有结构BAPIDLVITEM的et\u delivery\u item(我们使用复制结构INBOUND\u deliver\u STY)。

要存储交货数据,请在组件控制器的上下文中基于字典结构INBOUND\u deliver\u STY创建节点\u delivery\u item,并选择如果要在ALV表格中显示:

设置表格可编辑

则此ALV被配置为使列保质期到期或最早日期(VFDAT)可编辑。因此我们需要增强方法WDDOINIT的查看结果视图:

方法WDDOINIT。数据:lo\u cmp\u usage TYPE REF TO if\u wd\u component\u用法,lo\ u interfacecontroller TYPE REF TO iwci\ u salv\ u wd\ u table(lo\ u接口控制器类型参考iwci\ u salv\ u wd\ u表),lv\ U值类型参考cl\ U salv\ U wd\ U config\ U表格,lr\ U列类型参考cl\ U salv\ U wd\ U列,lr\u column\u settings TYPE REF到if\u salv\u wd\u column\u settings,lr\u input\u field TYPE REF TO cl\u salv\u wd\u uie\u input\u field.

lo\u cmp\u usage=wd\u this->wd\u cpuse\u alv()。如果locmp\u usage->has active\u component()是初始值。lou\cmp\u用法->创建\u组件()。结束。lou interfacecontroller=wd\u this->wd\u cpifc\u alv()。lv\u value=lou interfacecontroller->get\u model()。lv\u value->if\u salv\u wd\u table\u settings~ set\u read\u only(abap\u false)。lv\ U值->if\ salv\ u wd\ u table\设置~设置\选择\模式(cl\ u wd\ u table=>e\ u selection\ u mode-none)。lv\u value->if\u salv\u wd\u table\u settings~设置\u visible\u row\u count('5')。lv\u value->if\u salv\u wd\u table\u settings~设置\u fixed\u table\u布局(abap\u true)。lv\u value->if\u salv\u wd\u std\u functions ~ set\u pdf\u allowed(abap\u false)。lv\u value->if\u salv\u wd\u std\u functions ~ set\u export\u allowed(abap\u false)。lv \u value->if \u salv \u wd \u std \u functions ~ set \u edit \u append \u row \u allowed(abap \u false)。lv\u value->if\u salv\u wd\u std\u functions ~ set\u edit\u check\u available(abap\u false)。lv \u value->if \u salv \u wd \u std \u functions ~ set \u edit \u delete \u row \u allowed(abap \u false)。lv \u value->if \u salv \u wd \u std \u functions ~ set \u edit \u insert \u row \u allowed(abap \u false)。lv\u value->if\u salv\u wd\u std\u functions ~ set\u filter\u complex\u allowed(abap\u false)。lv\u value->if\u salv\u wd\u std\u functions ~ set\u filter\u filterline\u allowed(abap\u false)。

lr\u column\u settings?=lv\U值。lr\u column=lr\u column\u settings->get\u column('VFDAT')。创建对象lr\u输入\u字段导出值\u fieldname='VFDAT'。lr\u column->set\u cell\u editor(lr\u input\u field)。

ENDMETHOD.

创建一个从ERP获取数据的方法

您的自定义Web Dynpro组件需要实现Web Dynpro接口/XNFE/IF\u custom\u UI,使用3种方法:

IS\u INNFEHD–NF-e header,它\u nfeasign–相应的赋值表,IV_XML–将XML数据

导入自定义UI。每次加载自定义UI时,NFE框架都会调用此方法

我们在组件控制器中使用此方法来填充节点\u交付\u项:

方法步骤\u数据