2019-12-25 abap遇到耍流氓的增强 启用异步调用解决

2019-12-25 abap遇到耍流氓的增强 启用异步调用解决,第1张

需求是当系统更改了mm02 的长文本的时候做一个增强,找了半天,值是读到了,可长文本的条目也太多了,根本没法确定哪条是对的

这个时候怎么办,先找个隐式增强,保证mm01 和 mm02 *** 作都会经给找个地方

SELECT SINGLE CLASSNAME

                FROM  RZLLITAB

                INTO  G_CLASSNAME  "Server Group Name

              WHERE  APPLSERVER = G_APPLSERVER

                AND  GROUPTYPE = 'S'  "S:服务器组,空:登陆组

LV_MATNR = WMARA-MATNR

CALL FUNCTION 'ZFM_SAP_SRM_011' STARTING NEW TASK LV_MATNR

  DESTINATION IN GROUP G_CLASSNAME

  PERFORMING FRM_SAP_CRM ON END OF TASK

  EXPORTING

    IV_MATNR = LV_MATNR

FORM FRM_SAP_CRM USING NAME

  RECEIVE RESULTS FROM FUNCTION 'ZFM_SAP_SRM_011'

ENDFORM

DATA : GNAME LIKE SEQG3-GNAME VALUE 'MARA',

        GARG        LIKE  SEQG3-GARG,

        GUNAME      LIKE  SEQG3-GUNAME,

        LT_ITAB    TYPE ZFM_SAP_SRM_007_INS,

        LS_ITAB    LIKE LINE OF LT_ITAB,

        IM_JSON_STR TYPE STRING,

        EX_JSON_STR TYPE STRING,

        LT_OUTS    TYPE ZFM_SAP_SRM_007_OUTS,

        LS_OUTS    LIKE LINE OF LT_OUTS,

        LV_KEY01    TYPE ZKEY01,

        RAW_ENQ    LIKE  SEQG7 OCCURS 0 WITH HEADER LINE

  CONCATENATE SY-MANDT IV_MATNR INTO GARG

  BREAK GB05

  DO 10 TIMES

    CALL FUNCTION 'ENQUE_READ2'

      EXPORTING

        GNAME  = GNAME

        GARG  = GARG

        GUNAME = GUNAME

      TABLES

        ENQ    = RAW_ENQ

    IF RAW_ENQ[] IS INITIAL

      EXIT

    ELSE

      WAIT UP TO 1 SECONDS

    ENDIF

  ENDDO

  IF RAW_ENQ[] IS NOT INITIAL

    ZTYPE = 'E'

    CONCATENATE '物料号码' IV_MATNR '被锁定,请稍后处理!' INTO ZMESSAGE

    EXIT

  ENDIF

最终结果 

原理是启用异步调用后,你程序执行 我和你是并行的,但是我读取物料号是否被你原来程序锁止了,如果你锁止放开了,我这个程序拿到物料号,当然完成一个长文本读取是so easy

耍流氓我也来,哈哈  等你mm01 或者mm02跑完了 我再去抓你保存好的数据,然后再进行 *** 作

不是必须的,只是为了开发的方便,可能会创建。

举个例子,系统A需要调用系统B的RFC函数 Z_RFC,为了方便可以在系统A中创建同名的Z_RFC,然后参数都一样,但是A里面不需要写代码。在远程调用B的Z_RFC时,可以先按照调用本系统Z_RFC的方式来开发(可以使用标准功能帮助带出函数结构),然后加上参数之后可以编译一遍看看参数有没有问题,编译通过的情况下,再加上DESTINATION 语句就可以了(因为远程调用函数的语句在ABAP里面是不检查语法和参数有效性的,所以先调用本系统的可以做一下检查)

想排JOB,就SM37;

想让别的程序调用就SUBMIT;

想自身执行就点执行键(白色的圆表加一个绿勾勾的图标)或者按F8,如果没有界面的话就打个断点,才能看到执行的过程

ABAP的一些特性。 1、ABAP/4 支持商业数据类型和 *** 作。您可以用特殊日期和时间字段进行计算。系统会自动执行必需的类型转换。 2、ABAP/4 报表程序用于分析数据库表中的数据。这种分析的结果可以显示在屏幕上或发送到打印机上。逻辑数据库支持报表程序。 3、ABAP/4 允许您定义和调用子程序。也可以调用其他程序的子程序。参数能够以各种方式从子程序传递或传递到子程序。 4、ABAP/4 包含一种特殊子程序,叫做功能模块。您可以在中央库中创建和维护功能模块。在调用程序和子程序之间功能模块有一个明确定义的数据接口。它们能够以调用程序的独立模式进行分别测试。 5、ABAP/4 包含一个叫 Open SQL 的SQL子集。用Open SQL,您可以读取和访问数据库表,与所用的数据库系统无关。 6、ABAP/4将对话程序组织为包含对话模块的模块池。每个动态程序(由一个屏幕及其流逻辑组成的“动态程序”)都基于一个ABAP/4 对话程序。流逻辑包含对 ABAP/4对话模块的调用。 ABAP的一些优点。 1、ABAP/4是面向对象语言。它支持封装性和继承性。封装性是面向对象的基础,而继承性则是建立在封装性基础上的重要特性。 2、ABAP/4具有事件驱动的特性。 3、ABAP/4和COBOL具有类似之处。 4、ABAP/4适合生成报表。 5、ABAP/4支持对数据库的 *** 作。

以上就是关于2019-12-25 abap遇到耍流氓的增强 启用异步调用解决全部的内容,包括:2019-12-25 abap遇到耍流氓的增强 启用异步调用解决、两个abap系统之间远程调用函数,函数需要两边都建立吗、ABAP程序写好了怎么让它运行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9608229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存