ABAP FUNCTION MODULE调用logical database

    技术2022-05-11  18

    4.5B版本之后,可通过FMLDB_PROCESS来调用逻辑数据库,这样不仅在executable program中可以使用LDB,在interactive programmodule pool中也可以使用逻辑数据库。而且多个LDBS可以在一个程序中使用,同一个LDB可以在一个程序中调用多次。

    CALL FUNCTION ‘LDB_PROCESS’

        EXPORTING

            Ldbname = ‘F1S’

        TABLES

            Callback = call_back_tab

            Selections = sel_tab.

    Logical databasefunction module LDB_PROCESS的交互原理与get event相似,必需根据data dictionary structure ldbcb创建一个internal tablework area。这个内表收集了要处理的nodescall back subroutines。这个internal table的各个字段的意义如下:

    l         LDBNODE Name of the node to process

    l         GET X Process the GET event of the above node

    l         GET_LATE X process the GET_LATE event of the above node

    l         CB_PROG name of the program containing the callback subroutine

    l         CB_FORM name of the callback subroutine

    当你调用logical database时,你必须保证selection screen上输入了正确的值,必须通过dictionary structure RSPARAMS,为了使logical database可以被multiple processing,你必须在database program中添加subroutine LDB_PROCESS_INIT。如果你通过LDB_PROCESS指定了一个logical database,并且定义了额外的筛选条件,这些条件对应的该node的字段没有在dynamic selection中定义,那么必须在程序中去check当前的记录是否符合这些条件。如果check失败,你必须把subroutineselected参数置为space

    FORM call_back_sflight.

           USING name LIKE ldbn-ldbnode

                     Workarea TYPE sflight

                         Node   TYPE c

                         Selected TYPE c.

           IF NOT workarea-price IN s_price.

                  Selected = space.

                  EXIT.

           ENDIF.

    ENDFORM.


    最新回复(0)