ITPUB论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
更多
查看: 806|回复: 0

有关RFC作batch,多个asset及subasset时无法作unlock [复制链接]

精华贴数
0
技术积分
10
社区积分
0
注册时间
2008-5-15
论坛徽章:
0
发表于 2008-5-15 12:15:09 |显示全部楼层
原码如下,但目前实在找不出错误,还请高手帮忙
若有冒犯,请见谅,谢谢

*"  IMPORTING
*"     VALUE(P_ANLN1) TYPE  ANLN1 OPTIONAL
*"     VALUE(P_ANLN2) TYPE  ANLN2 OPTIONAL
*"     VALUE(P_FUNC) TYPE  FUNC OPTIONAL
*"  EXPORTING
*"     VALUE(R_ANLN1) TYPE  ANLN1
*"     VALUE(R_ANLN2) TYPE  ANLN2
*"     VALUE(FLAG) TYPE  FLAG
*"  TABLES
*"      MESSAGE STRUCTURE  MESSAGE OPTIONAL
*"      Z_ZTASS STRUCTURE  ZTASS OPTIONAL

* TABLES: ANLA.
  CLEAR MESSAGE.
  DATA: P_MODE(1) TYPE C.
  P_MODE = 'N'.

  IF P_FUNC = 'Q'.
    Check ( P_ANLN1 EQ SPACE AND P_ANLN2 EQ SPACE ).
    SELECT * INTO CORRESPONDING FIELDS OF TABLE Z_ZTASS FROM ANLA
      WHERE BUKRS = '1234' AND XSPEB = 'X'.

    LOOP AT Z_ZTASS.
      SELECT SINGLE KOSTL FROM ANLZ INTO Z_ZTASS-KOS
        WHERE ANLN1 =  Z_ZTASS-ANLN1 AND ANLN2 =  Z_ZTASS-ANLN2
          AND BUKRS = '1234' AND BDATU >= SY-DATUM.
      SELECT SINGLE KTGRTX FROM T095T INTO Z_ZTASS-KTGRTX
        WHERE KTOGR = Z_ZTASS-ANLKL.
      SELECT SINGLE ANLUE_TXT FROM T087V INTO Z_ZTASS-ANLUE_TXT
        WHERE ANLUE = Z_ZTASS-ANLUE.
      SELECT SINGLE NAME1 FROM LFA1 INTO Z_ZTASS-LIEFE
        WHERE LIFNR = Z_ZTASS-LIFNR.
      MOVE 1 TO Z_ZTASS-MENGE.
      MODIFY Z_ZTASS. CLEAR Z_ZTASS.
    ENDLOOP.

  ELSEIF P_FUNC = 'B'.
    Check ( P_ANLN1 <> SPACE AND P_ANLN2 <> SPACE ).
* SCREEN 100
    PERFORM BDC_DYNPRO USING 'SAPLAIST' '100'.
    PERFORM BDC_FIELD  USING 'ANLA-ANLN1' P_ANLN1.
    PERFORM BDC_FIELD  USING 'ANLA-ANLN2' P_ANLN2.
    PERFORM BDC_FIELD  USING 'ANLA-BUKRS' '1234'.
    PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
* SCREEN 200
    PERFORM BDC_DYNPRO USING 'SAPLAIST' '200'.
    PERFORM BDC_FIELD  USING 'ANLA-XSPEB' 'X'.
    PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BUCH'.
    CALL TRANSACTION 'AS05' USING BDCDATA MODE P_MODE UPDATE 'S'
                   MESSAGES INTO MESSTAB.
    IF SY-SUBRC = 0.
      SELECT SINGLE XSPEB INTO ANLA-XSPEB FROM ANLA
          WHERE ANLN1 = P_ANLN1 AND ANLN2 = P_ANLN2 AND BUKRS = '1234'.
      IF ANLA-XSPEB = 'X'.
        R_ANLN1 = P_ANLN1.
        R_ANLN2 = P_ANLN2.
        FLAG = ''.
      ELSE.
        R_ANLN1 = P_ANLN1.
        R_ANLN2 = P_ANLN2.
        FLAG = 'X'.
      ENDIF.
    ENDIF.

  ELSEIF P_FUNC = 'U'.
    Check ( P_ANLN1 <> SPACE AND P_ANLN2 <> SPACE ).
    PERFORM BDC_DYNPRO USING 'SAPLAIST' '100'.
    PERFORM BDC_FIELD  USING 'ANLA-ANLN1' P_ANLN1.
    PERFORM BDC_FIELD  USING 'ANLA-ANLN2' P_ANLN2.
    PERFORM BDC_FIELD  USING 'ANLA-BUKRS' '1234'.
    PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
* SCREEN 200
    PERFORM BDC_DYNPRO USING 'SAPLAIST' '200'.
    PERFORM BDC_FIELD  USING 'NO_SELECTION' 'X'.
    PERFORM BDC_FIELD  USING 'ANLA-XSPEB' ''.
    PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BUCH'.
    CALL TRANSACTION 'AS05' USING BDCDATA MODE P_MODE UPDATE 'S'
                    MESSAGES INTO MESSTAB.
    IF SY-SUBRC = 0.
      SELECT SINGLE XSPEB INTO ANLA-XSPEB FROM ANLA
          WHERE ANLN1 = P_ANLN1 AND ANLN2 = P_ANLN2 AND BUKRS = '1234'.
      IF ANLA-XSPEB = ''.
        R_ANLN1 = P_ANLN1.
        R_ANLN2 = P_ANLN2.
        FLAG = ''.
      ELSE.
        R_ANLN1 = P_ANLN1.
        R_ANLN2 = P_ANLN2.
        FLAG = 'X'.
      ENDIF.
    ENDIF.
  ENDIF.

ENDFUNCTION.

[ 本帖最后由 torso_turtle 于 2008-5-15 12:18 编辑 ]
相关内容推荐
您需要登录后才可以回帖 登录 | 注册

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 邮箱 虎吧 老博客 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
回顶部