FUNCTION ZSD_ACCOCHECK_FUNV2. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" VALUE(VBELNLIST) TYPE ZSD_XSDD_T OPTIONAL *" TABLES *" SO_ITEM_OUT STRUCTURE ZSD_ACCOCHECK_ST OPTIONAL *"---------------------------------------------------------------------- DATA: wa_VBELN type ZSD_XSDD . P_DDWQ = 'X' . P_DDYQ = 'X' . P_DDWQ2 = 'X' . P_DDYQ2 = 'X' . loop at VBELNLIST into wa_VBELN . GS_VBELN-sign = 'I'. GS_VBELN-option = 'EQ'. GS_VBELN-low = wa_VBELN-ZVBELN . append GS_VBELN . ENDLOOP . G_REPID = SY-REPID. PERFORM FRM_INIT_DATA. "加载基础数据到内存 PERFORM FRM_GET_DATA_007. PERFORM FRM_PROCESS_DATA_007. SO_ITEM_OUT[] = SO_ITEM[] . ENDFUNCTION.
时间: 2023-06-12 22:06:13 浏览: 154
这段 ABAP 代码看起来是一个函数,函数名为 ZSD_ACCOCHECK_FUNV2。它有两个输入参数,一个是 VBELNLIST,类型为 ZSD_XSDD_T,另一个是 SO_ITEM_OUT,类型为 ZSD_ACCOCHECK_ST。VBELNLIST 是一个订单号列表,SO_ITEM_OUT 则是处理后的订单行项目列表。在函数内部,它首先将 VBELNLIST 中的订单号逐一添加到 GS_VBELN 中,然后调用 FRM_INIT_DATA、FRM_GET_DATA_007 和 FRM_PROCESS_DATA_007 函数进行数据处理。最后将处理后的订单行项目列表赋值给 SO_ITEM_OUT 并返回。
相关问题
上面报错ABAP代码报错:Element VBELN of container metadata ZSD_ACCOCHECK_FUNV2 unknown
这个错误提示意味着在ZSD_ACCOCHECK_FUNV2的元数据中,VBELN元素未知。这可能是由于以下原因之一导致的:
1. 该元素不存在于程序中,因此需要添加该元素的定义。
2. 元素存在,但是在程序中未正确引用该元素。在这种情况下,需要检查程序中是否正确引用了该元素。
3. 该元素的命名空间与程序中引用的命名空间不一致。在这种情况下,需要检查命名空间是否正确,并在必要时进行更正。
您需要进一步检查代码和元数据定义来确定问题的确切原因。
SAP 根据工厂 加 权限组 获取邮箱地址 ZSDT050- WERKS = LIPS- WERKS & ZSDT050- ZAUGRP = BUT000- AUGRP 或 VBAK- ZAUGRP 取值:ZSDT050- ZQXZYX ZSDT050- ZCGYYX ZSDT050- ZYWGLYYX ZSDT050- ZQTYX1 ZSDT050- ZQTYX2
根据你的描述,我理解为你想要根据工厂和权限组来获取对应的邮箱地址。如果是这样,你可以使用SAP ABAP语言编写代码来实现。具体的实现过程如下:
1. 首先,需要定义一些数据类型和变量,例如:
```
TYPES: BEGIN OF ty_email,
email_address TYPE ad_smtpadr,
END OF ty_email.
DATA: lt_email TYPE STANDARD TABLE OF ty_email,
ls_email TYPE ty_email,
lv_werks TYPE werks_d,
lv_zaugrp TYPE zaugrp,
lv_email_address TYPE ad_smtpadr.
```
其中,`ty_email`是一个结构体,包含了一个邮箱地址`email_address`;`lt_email`是一个标准表,用于存储邮箱地址;`ls_email`是一个结构体变量,用于存储单个邮箱地址;`lv_werks`和`lv_zaugrp`分别表示工厂和权限组;`lv_email_address`用于存储单个邮箱地址的字符串。
2. 接下来,需要根据工厂和权限组查询对应的邮箱地址,例如:
```
SELECT zqxzyx zcgyyx zywglyyx zqtyx1 zqtyx2
FROM zsd_t050
INTO CORRESPONDING FIELDS OF TABLE lt_email
WHERE werks = lv_werks
AND zaugrp = lv_zaugrp.
```
其中,`zsd_t050`是一个自定义的数据表,存储了工厂、权限组和邮箱地址等信息,`CORRESPONDING FIELDS OF`表示将查询结果直接映射到`lt_email`表中的对应字段,`WHERE`语句表示查询条件。
3. 最后,将查询到的邮箱地址进行处理,例如:
```
LOOP AT lt_email INTO ls_email.
lv_email_address = ls_email-email_address.
" do something with the email address here
ENDLOOP.
```
这里使用`LOOP AT`遍历查询结果,将单个邮箱地址赋值给`lv_email_address`,然后可以对邮箱地址进行进一步的处理。
以上就是根据工厂和权限组获取邮箱地址的基本流程,具体的实现方式可能因为不同的SAP版本和数据结构而有所不同,需要根据实际情况进行调整。
阅读全文