Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Problem when using LDB_PROCESS

Former Member
0 Likes
454
TABLES: LFB1,BSIK.
SELECT-OPTIONS: S_BUKRS FOR BSIK-BUKRS,S_LIFNR FOR LFB1-LIFNR.

TYPE-POOLS: RSDS, RSFS.

DATA: CALLBACK TYPE TABLE OF LDBCB,
      CALLBACK_WA LIKE LINE OF CALLBACK.

DATA: SELTAB TYPE TABLE OF RSPARAMS,
      SELTAB_WA LIKE LINE OF SELTAB.

DATA: TEXPR TYPE RSDS_TEXPR,
      FSEL  TYPE RSFS_FIELDS.

CALLBACK_WA-LDBNODE     = 'LFB1'.
CALLBACK_WA-GET         = 'X'.
CALLBACK_WA-GET_LATE    = 'X'.
CALLBACK_WA-CB_PROG     = SY-REPID.
CALLBACK_WA-CB_FORM     = 'CALLBACK_LFB1'.
APPEND CALLBACK_WA TO CALLBACK.

CLEAR CALLBACK_WA.
CALLBACK_WA-LDBNODE     = 'BSIK'.
CALLBACK_WA-GET         = 'X'.
CALLBACK_WA-CB_PROG     = SY-REPID.
CALLBACK_WA-CB_FORM     = 'CALLBACK_BSIK'.
APPEND CALLBACK_WA TO CALLBACK.

SELTAB_WA-KIND = 'S'.
SELTAB_WA-SELNAME = 'KD_BUKRS'.

LOOP AT S_BUKRS.
  MOVE-CORRESPONDING S_BUKRS TO SELTAB_WA.
  APPEND SELTAB_WA TO SELTAB.
ENDLOOP.

SELTAB_WA-KIND = 'S'.
SELTAB_WA-SELNAME = 'KD_LIFNR'.

LOOP AT S_LIFNR.
  MOVE-CORRESPONDING S_LIFNR TO SELTAB_WA.
  APPEND SELTAB_WA TO SELTAB.
ENDLOOP.

CALL FUNCTION 'LDB_PROCESS'
     EXPORTING
          LDBNAME                     = 'KDF'
          VARIANT                     = ' '
          EXPRESSIONS                 = TEXPR
          FIELD_SELECTION             = FSEL
     TABLES
          CALLBACK                    = CALLBACK
          SELECTIONS                  = SELTAB
     EXCEPTIONS
          LDB_NOT_REENTRANT           = 1
          LDB_INCORRECT               = 2
          LDB_ALREADY_RUNNING         = 3
          LDB_ERROR                   = 4
          LDB_SELECTIONS_ERROR        = 5
          LDB_SELECTIONS_NOT_ACCEPTED = 6
          VARIANT_NOT_EXISTENT        = 7
          VARIANT_OBSOLETE            = 8
          VARIANT_ERROR               = 9
          FREE_SELECTIONS_ERROR       = 10
          CALLBACK_NO_EVENT           = 11
          CALLBACK_NODE_DUPLICATE     = 12
          OTHERS                      = 13.

IF SY-SUBRC <> 0.
  WRITE: 'Exception with SY-SUBRC', SY-SUBRC.
ENDIF.

FORM CALLBACK_LFB1 USING NAME  TYPE LDBN-LDBNODE
                          WA    TYPE LFB1
                          EVT   TYPE C
                          CHECK TYPE C.
  CASE EVT.
   WHEN 'G'.
      WRITE: / WA-BUKRS, WA-LIFNR.
      ULINE.
    WHEN 'L'.
      ULINE.
  ENDCASE.
ENDFORM.

FORM CALLBACK_BSIK USING NAME  TYPE LDBN-LDBNODE
                            WA    TYPE BSIK
                            EVT   TYPE C
                            CHECK TYPE C.
  WRITE: / WA-BELNR.
ENDFORM.

result:

ZFI_IF0005_NEW

2001 300000638

1900000006

But when I run the following code:

REPORT ZFI_IF0005_NEW.

NODES: LFB1,BSIK.

GET LFB1.
WRITE: / LFB1-BUKRS,LFB1-LIFNR.

GET BSIK.
WRITE: / BSIK-BELNR.

result:

ZFI_IF0005_NEW

2001 300000638
1900000006
1500000209
5100000072
1500000012
1900000005

why the results are not same?

1 REPLY 1
Read only

jaideepsharma
Active Contributor
0 Likes
324

Hi,

Please format your code and paste it again.

KR Jaideep,