Incorrect state of bdc-sessions after system-termination

Hello,
following situation:
I've run 8 bdc-sessions and system breaks down becaus of to less table space.
After correction of table space and activating update (sm13)
the job's go on.
But 2 bdc-sessions have a false state - they show processing but sm50 and log shows that they do nothing. The creation of customers is not complete (only 50 %). How can I correct the state of the bdc-sessions and process the jobs further???
1 BDC is finished but the state is false too (processing) How can i correct the state of tht session ?=
thanks and regaards
Andreas

Good morning Rob,
I've tried to release it but I get the following "false" message:
Could not release folder "MIARMD_1029"  since it still contains a background job
Message no. 00299
-> there's no background job any longer!
any ideas except creating new bdc-sessions???
thx and greetings
Andreas Mann

Similar Messages

  • Can't start gnome-session after system update.

    hi all
    I have done a whole system update .
    pacman -Syu
    and now I can't start the desktop environment.
    I tried to delete the xorg.conf and create new 1 and then copy it to /etc/X11
    X -configure
    but that didn't work.
    and when I am trying to create new xorg file I got an error message telling me that the number of screens detected is not matched , I am using a laptop .
    I checked ~/.xinitrc and /etc/rc.conf and everything is right.
    any suggestion??
    Last edited by YYaaSSeeRR (2012-11-19 08:11:06)

    ETNyx wrote:
    Hi,
    you did not give enough information but i had simillar problem cant start gdm look there https://bbs.archlinux.org/viewtopic.php?id=153240 anyway search trought your logs or post them to forum
    when I am trying to create new xorg file through this order
    X -configure
    I get an error message telling me that the number of created screens doesn't match the number of detected devices. "I am using a laptop BTW".
    and I can't log in, I just got the black screen and when launching startx I got the gnome shell session but after 2 seconds of that I got a failure in Gnome and have to log out.
    Last edited by YYaaSSeeRR (2012-11-20 07:25:55)

  • Cannot install Acrobat X from disc, incorrectly states computer doesn't meet system reqmnts.

    trying to install Acrobat X Standard from disc.  Computer gives me message that I have not met the system requirements.  But I have, so what do I do?

    First check form the below link that you actually meet the system  requirements.
    http://www.adobe.com/products/acrobatpro/tech-specs.html
    If you do, then copy the contents of the disc to a folder on the desktop and try running the installer and check if it works.

  • BDC SESSION METHOD EXPLAINED

    Hi,
    Eplained BDC Session Method
    flat file upload into sap

    ABAP BDC SESSION METHOD SAMPLE CODE
    pool of form routines
    include zmppn001.
    Define BDC Table Structure
    data: begin of itab_bdc_tab occurs 0.
    include structure bdcdata.
    data: end of itab_bdc_tab.
    Input record layout of Leagcy File
    data: begin of itab_xcel occurs 0,
    matnr(18) type c,
    werks(4) type c,
    alnag(2) type c,
    verid(4) type c,
    text1(40) type c,
    bstmi like mkal-bstmi,
    bstma like mkal-bstma,
    adatu(10) type c,
    bdatu(10) type c,
    stlal(2) type c,
    stlan(1) type c,
    serkz(1) type c,
    mdv01(8) type c,
    elpro(4) type c,
    alort(4) type c,
    end of itab_xcel.
    data: begin of lt_pp04_cache occurs 0,
    matnr like itab_xcel-matnr,
    werks like itab_xcel-werks,
    alnag like itab_xcel-alnag,
    plnnr like mapl-plnnr,
    arbpl like crhd-arbpl,
    ktext like crtx-ktext,
    end of lt_pp04_cache.
    data: v_ssnnr(4) type n,
    v_lines_in_xcel like sy-tabix,
    v_ssnname like apqi-groupid,
    v_trans_in_ssn type i,
    wa_xcel LIKE itab_xcel,
    l_tabix like sy-tabix,
    v_matnr like rc27m-matnr,
    v_plnnr like mapl-plnnr,
    v_plnal like mapl-plnal,
    v_tcode like sy-tcode value 'C223',
    v_plnty like plas-plnty value 'R',
    v_objty like crhd-objty value 'A',
    v_plpo_steus like plpo-steus value 'PP04',
    v_verwe like crhd-verwe value '0007'.
    Parameters
    selection-screen: skip 3.
    selection-screen: begin of block 1 with frame.
    parameters: p_name like rlgrap-filename
    default 'C:\My Documents\InputFile.txt'
    obligatory,
    bdc session name prefix
    p_bdcpfx(6) default 'ZPVCRT'
    obligatory,
    number for transction per BDC session
    p_trnssn type i
    default 2000 obligatory,
    retain the BDC session after successfull execution
    p_keep like apqi-qerase
    default 'X',
    user who will be executing BDC session
    p_uname like apqi-userid
    default sy-uname
    obligatory.
    selection-screen: end of block 1.
    possible entry list (F4 dropdown) for input file name
    at selection-screen on value-request for p_name.
    *-SELECT FILE FROM USERS LOCAL PC
    call function 'WS_FILENAME_GET'
    exporting
    DEF_FILENAME = ' '
    def_path = 'C:\Temp\'
    mask = ',.,..'
    mode = 'O'
    title = 'Select File '(007)
    importing
    filename = p_name
    RC =
    exceptions
    inv_winsys = 1
    no_batch = 2
    selection_cancel = 3
    selection_error = 4
    others = 5.
    if sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    endif.
    begin the show
    start-of-selection.
    read data from input file
    perform transfer_xcel_to_itab.
    loop at itab_xcel.
    hang on to xcel line num
    l_tabix = sy-tabix.
    each line in the xcel file marks begining of new prod.version defn
    if num-of-trnas-in-session = 0, create new BDC session
    if v_trans_in_ssn is initial.
    perform bdc_session_open.
    endif.
    begin new bdc script for rtg create trans
    fill in bdc-data for prod.version maintenance screens
    perform bdc_build_script.
    insert the bdc script as a BDC transaction
    perform bdc_submit_transaction.
    keep track of how many BDC transactions were inserted in the BDC
    session
    add 1 to v_trans_in_ssn.
    if the user-specified num of trans in BDC session is reached OR
    if end of input file is reached, close the BDC session
    if v_trans_in_ssn = p_trnssn or
    l_tabix = v_lines_in_xcel.
    perform bdc_session_close.
    clear v_trans_in_ssn.
    endif.
    endloop.
    top-of-page.
    call function 'Z_HEADER'
    EXPORTING
    FLEX_TEXT1 =
    FLEX_TEXT2 =
    FLEX_TEXT3 =
    FORM TRANSFER_XCEL_TO_ITAB *
    Transfer Xcel Spreadsheet to SAP Internal Table *
    form transfer_xcel_to_itab.
    Read the tab-delimited file into itab
    call function 'WS_UPLOAD'
    exporting
    filename = p_name
    filetype = 'DAT'
    IMPORTING
    filelength = flength
    tables
    data_tab = itab_xcel
    exceptions
    conversion_error = 1
    file_open_error = 2
    file_read_error = 3
    invalid_table_width = 4
    invalid_type = 5
    no_batch = 6
    unknown_error = 7
    others = 8.
    if sy-subrc = 0.
    sort the data
    sort itab_xcel by matnr werks.
    clear v_lines_in_xcel.
    if no data in the file - error out
    describe table itab_xcel lines v_lines_in_xcel.
    if v_lines_in_xcel is initial.
    write: / 'No data in input file'.
    stop.
    endif.
    else.
    if file upload failed - error out
    write: / 'Error reading input file'.
    stop.
    endif.
    endform.
    FORM BDC_SESSION_OPEN *
    Open BDC Session *
    form bdc_session_open.
    create bdc session name = prefix-from-selectn-screen + nnnn
    add 1 to v_ssnnr.
    concatenate p_bdcpfx v_ssnnr into v_ssnname.
    open new bdc session
    call function 'BDC_OPEN_GROUP'
    exporting
    client = sy-mandt
    group = v_ssnname
    keep = p_keep
    user = p_uname
    exceptions
    client_invalid = 1
    destination_invalid = 2
    group_invalid = 3
    group_is_locked = 4
    holddate_invalid = 5
    internal_error = 6
    queue_error = 7
    running = 8
    system_lock_error = 9
    user_invalid = 10
    others = 11.
    endform.
    FORM BDC_BUILD_SCRIPT *
    Build BDC *
    form bdc_build_script.
    data: l_arbpl like crhd-arbpl,
    l_text1 like mkal-text1,
    l_mdv01 like mkal-mdv01,
    l_mapl like mapl.
    clear bdc-data itab - begin of new bdc transaction
    clear itab_bdc_tab.
    refresh itab_bdc_tab.
    read material cross reference tables to determine sap part#
    clear : v_matnr, v_plnnr, v_plnal.
    perform read_matnr_cross_ref using itab_xcel-matnr
    itab_xcel-werks
    changing v_matnr.
    determine the version description to use
    if itab_xcel-text1 is initial.
    l_text1 = itab_xcel-verid.
    else.
    l_text1 = itab_xcel-text1.
    endif.
    determine the routing group# and group ctr# to use
    perform read_routing .
    determine the production line to use
    if itab_xcel-mdv01 is initial.
    if not provided in the file then:
    prod line = work ctr on the last PP04 op of the rtg determined above
    perform read_wc_on_last_pp04 using v_plnnr v_plnal
    changing l_mdv01.
    NOTE: when executing the above form\routine, if v_plnnr is initial
    or v_plnal is initial, THEN l_mdv01 will automatically be
    returned blank (ie initial)
    else.
    l_mdv01 = itab_xcel-mdv01.
    endif.
    build bdc script
    perform bdc_build_script_record
    fill in initial screen
    using: 'X' 'SAPLCMFV' '1000',
    ' ' 'BDC_OKCODE' '=ENTE',
    ' ' 'MKAL-WERKS' itab_xcel-werks,
    ' ' 'MKAL-MATNR' v_matnr,
    ' ' 'MKAL_ADMIN-DISPO' space,
    ' ' 'MKAL-PLNNR' space,
    ' ' 'MKAL_ADMIN-STTAG' space,
    ' ' 'MKAL-PLNNG' space,
    ' ' 'MKAL-MDV01' space,
    ' ' 'MKAL-PLNNM' space,
    click create button on initial screen and go to detail screen
    'X' 'SAPLCMFV' '1000',
    ' ' 'BDC_OKCODE' '=CREA',
    fill in the detail screen and go back to initial screen
    'X' 'SAPLCMFV' '2000',
    ' ' 'BDC_OKCODE' '=CLOS',
    ' ' 'MKAL_EXPAND-MATNR' v_matnr,
    ' ' 'MKAL_EXPAND-VERID' itab_xcel-verid,
    ' ' 'MKAL_EXPAND-TEXT1' l_text1,
    ' ' 'MKAL_EXPAND-BSTMI' itab_xcel-bstmi,
    ' ' 'MKAL_EXPAND-BSTMA' itab_xcel-bstma,
    ' ' 'MKAL_EXPAND-ADATU' itab_xcel-adatu,
    ' ' 'MKAL_EXPAND-BDATU' itab_xcel-bdatu,
    ' ' 'MKAL_EXPAND-PLTYG' v_plnty,
    ' ' 'MKAL_EXPAND-PLNNG' v_plnnr,
    ' ' 'MKAL_EXPAND-ALNAG' v_plnal,
    ' ' 'MKAL_EXPAND-STLAL' itab_xcel-stlal,
    ' ' 'MKAL_EXPAND-STLAN' itab_xcel-stlan,
    ' ' 'MKAL_EXPAND-SERKZ' itab_xcel-serkz,
    ' ' 'MKAL_EXPAND-MDV01' l_mdv01,
    ' ' 'MKAL_EXPAND-ELPRO' itab_xcel-elpro,
    ' ' 'MKAL_EXPAND-ALORT' itab_xcel-alort,
    save the production version from initial screen
    'X' 'SAPLCMFV' '1000',
    ' ' 'BDC_OKCODE' '=SAVE'.
    endform.
    FORM BDC_SUBMIT_TRANSACTION *
    Submit BDC Session *
    form bdc_submit_transaction.
    Load BDC script as a trqansction in BDC session
    call function 'BDC_INSERT'
    exporting
    tcode = v_tcode
    tables
    dynprotab = itab_bdc_tab
    exceptions
    internal_error = 01
    not_open = 02
    queue_error = 03
    tcode_invalid = 04.
    endform.
    FORM BDC_BUILD_SCRIPT_RECORD *
    form bdc_build_script_record using dynbegin name value.
    clear itab_bdc_tab.
    if dynbegin = 'X'.
    move: name to itab_bdc_tab-program,
    value to itab_bdc_tab-dynpro,
    'X' to itab_bdc_tab-dynbegin.
    else.
    move: name to itab_bdc_tab-fnam,
    value to itab_bdc_tab-fval.
    shift itab_bdc_tab-fval left deleting leading space.
    endif.
    append itab_bdc_tab.
    endform.
    FORM BDC_SESSION_CLOSE *
    Close BDC Session *
    form bdc_session_close.
    close the session
    call function 'BDC_CLOSE_GROUP'
    exceptions
    not_open = 1
    queue_error = 2
    others = 3.
    skip 2.
    if sy-subrc ne 0.
    write: / 'Error Closing BDC Session ' , 'RETURN CODE: ', sy-subrc.
    else.
    write : / 'Session created:', v_ssnname,
    50 '# of transactions:', v_trans_in_ssn.
    endif.
    endform.
    *& Form read_routing_cache
    *FORM read_routing_cache USING pi_matnr
    pi_werks
    pi_alnag
    pi_verid
    pi_mdv01.
    DATA: BEGIN OF lt_plpo OCCURS 0,
    vornr LIKE plpo-vornr,
    objty LIKE crhd-objty,
    objid LIKE crhd-objid,
    arbpl LIKE crhd-arbpl,
    END OF lt_plpo,
    l_mapl_plnnr LIKE mapl-plnnr.
    determine the routing group#
    CLEAR lt_pp04_cache.
    chk if its in the cache first, if not then get it from MAPL table
    and put it in the cache
    READ TABLE lt_pp04_cache WITH KEY matnr = pi_matnr
    werks = pi_werks
    alnag = pi_alnag.
    IF sy-subrc = 0.
    do nothing - lt_pp04_cache header line has rtg#
    ELSE.
    get the routing group # from MAPL
    SELECT plnnr INTO l_mapl_plnnr
    FROM mapl UP TO 1 ROWS
    WHERE matnr = pi_matnr AND
    werks = pi_werks AND
    plnty = 'R' AND
    plnal = pi_alnag AND
    loekz = space.
    ENDSELECT.
    put it in the cache internal table
    IF NOT l_mapl_plnnr IS INITIAL.
    lt_pp04_cache-matnr = pi_matnr.
    lt_pp04_cache-werks = pi_werks.
    lt_pp04_cache-alnag = pi_alnag.
    lt_pp04_cache-plnnr = l_mapl_plnnr.
    APPEND lt_pp04_cache.
    ENDIF.
    ENDIF.
    if the rtg# was determined AND
    -- the work center was not determined yet AND
    -- work center was really needed for this line in the input file
    then
    -- read the work center from last PP04 operation on the routing
    -- update the cache accordingly
    IF NOT lt_pp04_cache-plnnr IS INITIAL AND
    lt_pp04_cache-arbpl IS INITIAL AND
    ( pi_verid IS INITIAL OR
    pi_mdv01 IS INITIAL ).
    read the last PP04 operation
    CLEAR lt_plpo.
    REFRESH lt_plpo.
    SELECT vornr eobjty eobjid e~arbpl
    INTO CORRESPONDING FIELDS OF TABLE lt_plpo
    FROM plas AS b
    INNER JOIN plpo AS c
    ON bplnty = cplnty AND
    bplnnr = cplnnr AND
    bzaehl = czaehl
    INNER JOIN crhd AS e
    ON carbid = eobjid
    WHERE b~plnty = v_plnty AND
    b~plnnr = lt_pp04_cache-plnnr AND
    b~plnal = lt_pp04_cache-alnag AND
    c~loekz = space AND
    c~steus = v_plpo_steus AND
    e~objty = v_objty AND
    e~werks = lt_pp04_cache-werks AND
    e~verwe = v_verwe.
    SORT lt_plpo BY vornr DESCENDING.
    READ TABLE lt_plpo INDEX 1.
    IF NOT lt_plpo-arbpl IS INITIAL.
    lt_pp04_cache-arbpl = lt_plpo-arbpl.
    read work center description
    SELECT SINGLE ktext INTO lt_pp04_cache-ktext
    FROM crtx WHERE objty = lt_plpo-objty AND
    objid = lt_plpo-objid AND
    spras = sy-langu.
    the following read will get the index of the correct record to be
    updated in the cache
    READ TABLE lt_pp04_cache
    WITH KEY matnr = pi_matnr
    werks = pi_werks
    alnag = pi_alnag.
    MODIFY lt_pp04_cache
    INDEX sy-tabix
    TRANSPORTING arbpl ktext.
    ENDIF.
    ENDIF.
    *ENDFORM. " read_last_pp04_operation_cache
    *& Form read_routing
    form read_routing.
    data: begin of lt_mapl occurs 0,
    plnnr like mapl-plnnr,
    plnal like mapl-plnal,
    end of lt_mapl,
    l_arbpl like crhd-arbpl.
    get all the rtg# and grp ctr# from MAPL
    select plnnr plnal
    into corresponding fields of table lt_mapl
    from mapl
    where matnr = v_matnr and
    werks = itab_xcel-werks and
    plnty = v_plnty and "Rate Routing
    loekz = space. "with del flag = OFF
    sort lt_mapl by plnal.
    if not itab_xcel-verid is initial.
    if the verid=0001 then use the 1st good rtg-grp# and grp-ctr#
    if itab_xcel-verid = '0001'.
    read table lt_mapl index 1.
    v_plnnr = lt_mapl-plnnr.
    v_plnal = lt_mapl-plnal.
    else.
    if the verid<>0001 then use the rtg-grp# and grp-ctr# of the routing
    whose work center on the last PP04 operation matches the given verid
    loop at lt_mapl.
    clear l_arbpl.
    get the work center from the last PP04 operation
    perform read_wc_on_last_pp04 using lt_mapl-plnnr
    lt_mapl-plnal
    changing l_arbpl.
    if itab_xcel-verid = l_arbpl.
    v_plnnr = lt_mapl-plnnr.
    v_plnal = lt_mapl-plnal.
    exit.
    endif.
    endloop.
    endif.
    else.
    do nothing
    endif.
    For version IDs that are other then '0000' or 'ZWIP' :--
    if itab_xcel-verid NE '0000' and
    itab_xcel-verid NE 'ZWIP'.
    if routing group# or group counter was not determined, make the
    valid-to date 99/99/9999 so that the BDC, on execution, errors out.
    if v_plnnr is initial or
    v_plnal is initial.
    itab_xcel-bdatu = '99/99/9999'.
    endif.
    endif.
    determine the routing group#
    CLEAR lt_pp04_cache.
    chk if its in the cache first, if not then get it from MAPL table
    and put it in the cache
    READ TABLE lt_pp04_cache WITH KEY matnr = pi_matnr
    werks = pi_werks
    alnag = pi_alnag.
    IF sy-subrc = 0.
    do nothing - lt_pp04_cache header line has rtg#
    ELSE.
    get the routing group # from MAPL
    put it in the cache internal table
    IF NOT l_mapl_plnnr IS INITIAL.
    lt_pp04_cache-matnr = pi_matnr.
    lt_pp04_cache-werks = pi_werks.
    lt_pp04_cache-alnag = pi_alnag.
    lt_pp04_cache-plnnr = l_mapl_plnnr.
    APPEND lt_pp04_cache.
    ENDIF.
    ENDIF.
    if the rtg# was determined AND
    -- the work center was not determined yet AND
    -- work center was really needed for this line in the input file
    then
    -- read the work center from last PP04 operation on the routing
    -- update the cache accordingly
    IF NOT lt_pp04_cache-plnnr IS INITIAL AND
    lt_pp04_cache-arbpl IS INITIAL AND
    ( pi_verid IS INITIAL OR
    pi_mdv01 IS INITIAL ).
    read the last PP04 operation
    CLEAR lt_plpo.
    REFRESH lt_plpo.
    SELECT vornr eobjty eobjid e~arbpl
    INTO CORRESPONDING FIELDS OF TABLE lt_plpo
    FROM plas AS b
    INNER JOIN plpo AS c
    ON bplnty = cplnty AND
    bplnnr = cplnnr AND
    bzaehl = czaehl
    INNER JOIN crhd AS e
    ON carbid = eobjid
    WHERE b~plnty = v_plnty AND
    b~plnnr = lt_pp04_cache-plnnr AND
    b~plnal = lt_pp04_cache-alnag AND
    c~loekz = space AND
    c~steus = v_plpo_steus AND
    e~objty = v_objty AND
    e~werks = lt_pp04_cache-werks AND
    e~verwe = v_verwe.
    SORT lt_plpo BY vornr DESCENDING.
    READ TABLE lt_plpo INDEX 1.
    IF NOT lt_plpo-arbpl IS INITIAL.
    lt_pp04_cache-arbpl = lt_plpo-arbpl.
    read work center description
    SELECT SINGLE ktext INTO lt_pp04_cache-ktext
    FROM crtx WHERE objty = lt_plpo-objty AND
    objid = lt_plpo-objid AND
    spras = sy-langu.
    the following read will get the index of the correct record to be
    updated in the cache
    READ TABLE lt_pp04_cache
    WITH KEY matnr = pi_matnr
    werks = pi_werks
    alnag = pi_alnag.
    MODIFY lt_pp04_cache
    INDEX sy-tabix
    TRANSPORTING arbpl ktext.
    ENDIF.
    ENDIF.
    endform. " read_last_pp04_operation_cache
    *& Form read_wc_on_last_pp04
    form read_wc_on_last_pp04 using pi_plnnr
    pi_plnal
    changing pe_arbpl.
    data: begin of lt_plpo occurs 0,
    vornr like plpo-vornr,
    objty like crhd-objty,
    objid like crhd-objid,
    arbpl like crhd-arbpl,
    end of lt_plpo.
    get all the PP04 operations for the given rtg# & grp-ctr#
    select vornr eobjty eobjid e~arbpl
    into corresponding fields of table lt_plpo
    from plas as b
    inner join plpo as c
    on bplnty = cplnty and
    bplnnr = cplnnr and
    bzaehl = czaehl
    inner join crhd as e
    on carbid = eobjid
    where b~plnty = v_plnty and "Rate Routing
    b~plnnr = pi_plnnr and
    b~plnal = pi_plnal and
    c~loekz = space and "Oper Del Flag = OFF
    c~steus = v_plpo_steus and "PP04
    e~objty = v_objty. "WC Obj Type = 'A'
    read the last operation
    sort lt_plpo by vornr descending.
    read table lt_plpo index 1.
    pe_arbpl = lt_plpo-arbpl.
    endform.
    Regards.

  • BDC Sessions says it is locked.....

    Hi All,
    We were running two BDC Sessions at the same time updating the table. Suddenly the SAP got shut down. After few minutes i could see both BDC Sessions are "still under processing" status but the postings got stopped. When i entered SM12 and could see the First BDC session is locked. So both the BDC sessions are still pending. But the next BDC sessions after these two, got processed succesfully. My problem is two BDC sessions half of the postings were done, so couldn't delete the sessions.
    Kindly help me out in this issue.
    Thanks
    Srikanth.

    Hi,
    Check with your Basis, they can help you.
    Rgds,
    Sreeni

  • Example of BDC Session method

    Hello Friends,
    Can you guide me how to create BDC with SESSION method.?
    Please mantion examples.
    Thanks in advance.
    Regards,
    nimesh master

    See below example code :
    Call three FM : BDC_OPEN_GROUP,BDC_INSERT and BDC_CLOSE_GROUP.
    Once you execute the program and it creates the session at SM35 Transaction.
    Report     : ZMPPC011
    Type       : Data upload
    Author     : Chetan Shah
    Date       : 05/05/2005
    Transport  : DV3K919557
    Transaction: ??
    Description: This ABAP/4 Program creates new Production Versions
                 (C223). It accepts tab-delimited spreadsheet input and
                 creates BDC sessions.
                        Modification Log
    Date       Programmer    Request #    Description
    06/10/2005 Chetan Shah   DV3K919557   Initial coding
    report zmppc011 no standard page heading line-size 120 line-count 55
       message-id zz.
    pool of form routines
    include zmppn001.
    Define BDC Table Structure
    data: begin of itab_bdc_tab occurs 0.
            include structure bdcdata.
    data: end of itab_bdc_tab.
    Input record layout of Leagcy File
    data: begin of itab_xcel occurs 0,
            matnr(18)  type c,
            werks(4)   type c,
            alnag(2)   type c,
            verid(4)   type c,
            text1(40)  type c,
            bstmi      like mkal-bstmi,
            bstma      like mkal-bstma,
            adatu(10)  type c,
            bdatu(10)  type c,
            stlal(2)   type c,
            stlan(1)   type c,
            serkz(1)   type c,
            mdv01(8)   type c,
            elpro(4)   type c,
            alort(4)   type c,
          end of itab_xcel.
    data: begin of lt_pp04_cache occurs 0,
            matnr like itab_xcel-matnr,
            werks like itab_xcel-werks,
            alnag like itab_xcel-alnag,
            plnnr like mapl-plnnr,
            arbpl like crhd-arbpl,
            ktext like crtx-ktext,
          end of lt_pp04_cache.
    data: v_ssnnr(4)      type n,
          v_lines_in_xcel like sy-tabix,
          v_ssnname       like apqi-groupid,
          v_trans_in_ssn  type i,
         wa_xcel         LIKE itab_xcel,
          l_tabix         like sy-tabix,
          v_matnr         like rc27m-matnr,
          v_plnnr         like mapl-plnnr,
          v_plnal         like mapl-plnal,
          v_tcode         like sy-tcode value 'C223',
          v_plnty         like plas-plnty value 'R',
          v_objty         like crhd-objty value 'A',
          v_plpo_steus    like plpo-steus value 'PP04',
          v_verwe         like crhd-verwe value '0007'.
    Parameters
    selection-screen: skip 3.
    selection-screen: begin of block 1 with frame.
    parameters: p_name        like rlgrap-filename
                              default 'C:\My Documents\InputFile.txt'
                              obligatory,
    bdc session name prefix
                p_bdcpfx(6)   default 'ZPVCRT'
                              obligatory,
    number for transction per BDC session
                p_trnssn      type i
                              default 2000 obligatory,
    retain the BDC session after successfull execution
                p_keep        like apqi-qerase
                              default 'X',
    user who will be executing BDC session
                p_uname       like apqi-userid
                              default sy-uname
                              obligatory.
    selection-screen: end of block 1.
    possible entry list (F4 dropdown) for input file name
    at selection-screen on value-request for p_name.
    *-SELECT FILE FROM USERS LOCAL PC
      call function 'WS_FILENAME_GET'
          exporting
             DEF_FILENAME     = ' '
               def_path         = 'C:\Temp\'
               mask             = ',.,..'
               mode             = 'O'
               title            = 'Select File '(007)
          importing
               filename         = p_name
             RC               =
          exceptions
               inv_winsys       = 1
               no_batch         = 2
               selection_cancel = 3
               selection_error  = 4
               others           = 5.
      if sy-subrc <> 0.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    begin the show
    start-of-selection.
    read data from input file
      perform transfer_xcel_to_itab.
      loop at itab_xcel.
      hang on to xcel line num
        l_tabix = sy-tabix.
      each line in the xcel file marks begining of new prod.version defn
      if num-of-trnas-in-session = 0, create new BDC session
        if v_trans_in_ssn is initial.
          perform bdc_session_open.
        endif.
      begin new bdc script for rtg create trans
      fill in bdc-data for prod.version maintenance screens
        perform bdc_build_script.
      insert the bdc script as a BDC transaction
        perform bdc_submit_transaction.
      keep track of how many BDC transactions were inserted in the BDC
      session
        add 1 to v_trans_in_ssn.
      if the user-specified num of trans in BDC session is reached OR
      if end of input file is reached, close the BDC session
        if v_trans_in_ssn = p_trnssn or
           l_tabix = v_lines_in_xcel.
          perform bdc_session_close.
          clear v_trans_in_ssn.
        endif.
      endloop.
    top-of-page.
      call function 'Z_HEADER'
    EXPORTING
      FLEX_TEXT1       =
      FLEX_TEXT2       =
      FLEX_TEXT3       =
          FORM TRANSFER_XCEL_TO_ITAB                                    *
          Transfer Xcel Spreadsheet to SAP Internal Table               *
    form transfer_xcel_to_itab.
    Read the tab-delimited file into itab
      call function 'WS_UPLOAD'
           exporting
                filename            = p_name
                filetype            = 'DAT'
          IMPORTING
               filelength          = flength
           tables
                data_tab            = itab_xcel
           exceptions
                conversion_error    = 1
                file_open_error     = 2
                file_read_error     = 3
                invalid_table_width = 4
                invalid_type        = 5
                no_batch            = 6
                unknown_error       = 7
                others              = 8.
      if sy-subrc = 0.
      sort the data
        sort itab_xcel by matnr werks.
        clear v_lines_in_xcel.
      if no data in the file - error out
        describe table itab_xcel lines v_lines_in_xcel.
        if v_lines_in_xcel is initial.
          write: / 'No data in input file'.
          stop.
        endif.
      else.
      if file upload failed - error out
        write: / 'Error reading input file'.
        stop.
      endif.
    endform.
          FORM BDC_SESSION_OPEN                                         *
          Open BDC Session                                              *
    form bdc_session_open.
    create bdc session name = prefix-from-selectn-screen + nnnn
      add 1 to v_ssnnr.
      concatenate p_bdcpfx v_ssnnr into v_ssnname.
    open new bdc session
      call function 'BDC_OPEN_GROUP'
           exporting
                client              = sy-mandt
                group               = v_ssnname
                keep                = p_keep
                user                = p_uname
           exceptions
                client_invalid      = 1
                destination_invalid = 2
                group_invalid       = 3
                group_is_locked     = 4
                holddate_invalid    = 5
                internal_error      = 6
                queue_error         = 7
                running             = 8
                system_lock_error   = 9
                user_invalid        = 10
                others              = 11.
    endform.
          FORM BDC_BUILD_SCRIPT                                         *
          Build BDC                                                     *
    form bdc_build_script.
      data: l_arbpl like crhd-arbpl,
            l_text1 like mkal-text1,
            l_mdv01 like mkal-mdv01,
            l_mapl  like mapl.
    clear bdc-data itab - begin of new bdc transaction
      clear   itab_bdc_tab.
      refresh itab_bdc_tab.
    read material cross reference tables to determine sap part#
      clear : v_matnr, v_plnnr, v_plnal.
      perform read_matnr_cross_ref using itab_xcel-matnr
                                         itab_xcel-werks
                                   changing v_matnr.
    determine the version description to use
      if itab_xcel-text1 is initial.
        l_text1 = itab_xcel-verid.
      else.
        l_text1 = itab_xcel-text1.
      endif.
    determine the routing group# and group ctr# to use
      perform read_routing .
    determine the production line to use
      if itab_xcel-mdv01 is initial.
      if not provided in the file then:
      prod line = work ctr on the last PP04 op of the rtg determined above
        perform read_wc_on_last_pp04 using v_plnnr v_plnal
                                  changing l_mdv01.
      NOTE: when executing the above form\routine, if v_plnnr is initial
            or v_plnal is initial, THEN l_mdv01 will automatically be
            returned blank (ie initial)
      else.
        l_mdv01 = itab_xcel-mdv01.
      endif.
    build bdc script
      perform bdc_build_script_record
    fill in initial screen
              using: 'X' 'SAPLCMFV'         '1000',
                     ' ' 'BDC_OKCODE'       '=ENTE',
                     ' ' 'MKAL-WERKS'       itab_xcel-werks,
                     ' ' 'MKAL-MATNR'       v_matnr,
                     ' ' 'MKAL_ADMIN-DISPO' space,
                     ' ' 'MKAL-PLNNR'       space,
                     ' ' 'MKAL_ADMIN-STTAG' space,
                     ' ' 'MKAL-PLNNG'       space,
                     ' ' 'MKAL-MDV01'       space,
                     ' ' 'MKAL-PLNNM'       space,
    click create button on initial screen and go to detail screen
                     'X' 'SAPLCMFV'         '1000',
                     ' ' 'BDC_OKCODE'       '=CREA',
    fill in the detail screen and go back to initial screen
                     'X' 'SAPLCMFV'           '2000',
                     ' ' 'BDC_OKCODE'         '=CLOS',
                     ' ' 'MKAL_EXPAND-MATNR'  v_matnr,
                     ' ' 'MKAL_EXPAND-VERID'  itab_xcel-verid,
                     ' ' 'MKAL_EXPAND-TEXT1'  l_text1,
                     ' ' 'MKAL_EXPAND-BSTMI'  itab_xcel-bstmi,
                     ' ' 'MKAL_EXPAND-BSTMA'  itab_xcel-bstma,
                     ' ' 'MKAL_EXPAND-ADATU'  itab_xcel-adatu,
                     ' ' 'MKAL_EXPAND-BDATU'  itab_xcel-bdatu,
                     ' ' 'MKAL_EXPAND-PLTYG'  v_plnty,
                     ' ' 'MKAL_EXPAND-PLNNG'  v_plnnr,
                     ' ' 'MKAL_EXPAND-ALNAG'  v_plnal,
                     ' ' 'MKAL_EXPAND-STLAL'  itab_xcel-stlal,
                     ' ' 'MKAL_EXPAND-STLAN'  itab_xcel-stlan,
                     ' ' 'MKAL_EXPAND-SERKZ'  itab_xcel-serkz,
                     ' ' 'MKAL_EXPAND-MDV01'  l_mdv01,
                     ' ' 'MKAL_EXPAND-ELPRO'  itab_xcel-elpro,
                     ' ' 'MKAL_EXPAND-ALORT'  itab_xcel-alort,
    save the production version from initial screen
                     'X' 'SAPLCMFV'           '1000',
                     ' ' 'BDC_OKCODE'         '=SAVE'.
    endform.
          FORM BDC_SUBMIT_TRANSACTION                                   *
          Submit BDC Session                                            *
    form bdc_submit_transaction.
    Load BDC script as a trqansction in BDC session
      call function 'BDC_INSERT'
           exporting
                tcode          = v_tcode
           tables
                dynprotab      = itab_bdc_tab
           exceptions
                internal_error = 01
                not_open       = 02
                queue_error    = 03
                tcode_invalid  = 04.
    endform.
          FORM BDC_BUILD_SCRIPT_RECORD                                  *
    form bdc_build_script_record using dynbegin name value.
      clear itab_bdc_tab.
      if dynbegin = 'X'.
        move: name  to itab_bdc_tab-program,
              value to itab_bdc_tab-dynpro,
              'X'   to itab_bdc_tab-dynbegin.
      else.
        move: name  to itab_bdc_tab-fnam,
              value to itab_bdc_tab-fval.
        shift itab_bdc_tab-fval left deleting leading space.
      endif.
      append itab_bdc_tab.
    endform.
          FORM BDC_SESSION_CLOSE                                        *
          Close BDC Session                                             *
    form bdc_session_close.
    close the session
      call function 'BDC_CLOSE_GROUP'
           exceptions
                not_open    = 1
                queue_error = 2
                others      = 3.
      skip 2.
      if sy-subrc ne 0.
        write: / 'Error Closing BDC Session ' , 'RETURN CODE: ', sy-subrc.
      else.
        write : /  'Session created:', v_ssnname,
                50 '# of transactions:', v_trans_in_ssn.
      endif.
    endform.
    *&      Form  read_routing_cache
    *FORM read_routing_cache USING    pi_matnr
                                    pi_werks
                                    pi_alnag
                                    pi_verid
                                    pi_mdv01.
    DATA: BEGIN OF lt_plpo OCCURS 0,
             vornr LIKE plpo-vornr,
             objty LIKE crhd-objty,
             objid LIKE crhd-objid,
             arbpl LIKE crhd-arbpl,
           END OF lt_plpo,
           l_mapl_plnnr LIKE mapl-plnnr.
    determine the routing group#
    CLEAR lt_pp04_cache.
    chk if its in the cache first, if not then get it from MAPL table
    and put it in the cache
    READ TABLE lt_pp04_cache WITH KEY matnr = pi_matnr
                                       werks = pi_werks
                                       alnag = pi_alnag.
    IF sy-subrc = 0.
      do nothing - lt_pp04_cache header line has rtg#
    ELSE.
      get the routing group # from MAPL
       SELECT plnnr INTO l_mapl_plnnr
         FROM mapl UP TO 1 ROWS
        WHERE matnr = pi_matnr    AND
              werks = pi_werks    AND
              plnty = 'R'         AND
              plnal = pi_alnag    AND
              loekz = space.
       ENDSELECT.
      put it in the cache internal table
       IF NOT l_mapl_plnnr IS INITIAL.
         lt_pp04_cache-matnr = pi_matnr.
         lt_pp04_cache-werks = pi_werks.
         lt_pp04_cache-alnag = pi_alnag.
         lt_pp04_cache-plnnr = l_mapl_plnnr.
         APPEND lt_pp04_cache.
       ENDIF.
    ENDIF.
    if the rtg# was determined AND
    -- the work center was not determined yet AND
    -- work center was really needed for this line in the input file
    then
    -- read the work center from last PP04 operation on the routing
    -- update the cache accordingly
    IF NOT lt_pp04_cache-plnnr IS INITIAL AND
            lt_pp04_cache-arbpl IS INITIAL AND
        ( pi_verid IS INITIAL OR
          pi_mdv01 IS INITIAL ).
      read the last PP04 operation
       CLEAR   lt_plpo.
       REFRESH lt_plpo.
       SELECT vornr eobjty eobjid e~arbpl
         INTO CORRESPONDING FIELDS OF TABLE lt_plpo
         FROM plas AS b
              INNER JOIN plpo AS c
                    ON bplnty = cplnty AND
                       bplnnr = cplnnr AND
                       bzaehl = czaehl
              INNER JOIN crhd AS e
                    ON carbid = eobjid
        WHERE b~plnty = v_plnty             AND
              b~plnnr = lt_pp04_cache-plnnr AND
              b~plnal = lt_pp04_cache-alnag AND
              c~loekz = space               AND
              c~steus = v_plpo_steus        AND
              e~objty = v_objty             AND
              e~werks = lt_pp04_cache-werks AND
              e~verwe = v_verwe.
       SORT lt_plpo BY vornr DESCENDING.
       READ TABLE lt_plpo INDEX 1.
       IF NOT lt_plpo-arbpl IS INITIAL.
         lt_pp04_cache-arbpl = lt_plpo-arbpl.
        read work center description
         SELECT SINGLE ktext INTO lt_pp04_cache-ktext
           FROM crtx WHERE objty = lt_plpo-objty AND
                           objid = lt_plpo-objid AND
                           spras = sy-langu.
        the following read will get the index of the correct record to be
        updated in the cache
         READ TABLE lt_pp04_cache
              WITH KEY matnr = pi_matnr
                       werks = pi_werks
                       alnag = pi_alnag.
         MODIFY lt_pp04_cache
                INDEX sy-tabix
                TRANSPORTING arbpl ktext.
       ENDIF.
    ENDIF.
    *ENDFORM.                    " read_last_pp04_operation_cache
    *&      Form  read_routing
    form read_routing.
      data: begin of lt_mapl occurs 0,
              plnnr like mapl-plnnr,
              plnal like mapl-plnal,
            end of lt_mapl,
            l_arbpl like crhd-arbpl.
    get all the rtg# and grp ctr# from MAPL
      select plnnr plnal
        into corresponding fields of table lt_mapl
        from mapl
       where matnr = v_matnr          and
             werks = itab_xcel-werks  and
             plnty = v_plnty          and     "Rate Routing
             loekz = space.                   "with del flag = OFF
      sort lt_mapl by plnal.
      if not itab_xcel-verid is initial.
      if the verid=0001 then use the 1st good rtg-grp# and grp-ctr#
        if itab_xcel-verid = '0001'.
          read table lt_mapl index 1.
          v_plnnr = lt_mapl-plnnr.
          v_plnal = lt_mapl-plnal.
        else.
      if the verid<>0001 then use the rtg-grp# and grp-ctr# of the routing
      whose work center on the last PP04 operation matches the given verid
          loop at lt_mapl.
            clear l_arbpl.
          get the work center from the last PP04 operation
            perform read_wc_on_last_pp04 using lt_mapl-plnnr
                                               lt_mapl-plnal
                                      changing l_arbpl.
            if itab_xcel-verid = l_arbpl.
              v_plnnr = lt_mapl-plnnr.
              v_plnal = lt_mapl-plnal.
              exit.
            endif.
          endloop.
        endif.
      else.
      do nothing
      endif.
    For version IDs that are other then '0000' or 'ZWIP' :--
      if itab_xcel-verid NE '0000' and
         itab_xcel-verid NE 'ZWIP'.
      if routing group# or group counter was not determined, make the
      valid-to date 99/99/9999 so that the BDC, on execution, errors out.
        if v_plnnr is initial or
           v_plnal is initial.
          itab_xcel-bdatu = '99/99/9999'.
        endif.
      endif.
    determine the routing group#
    CLEAR lt_pp04_cache.
    chk if its in the cache first, if not then get it from MAPL table
    and put it in the cache
    READ TABLE lt_pp04_cache WITH KEY matnr = pi_matnr
                                       werks = pi_werks
                                       alnag = pi_alnag.
    IF sy-subrc = 0.
      do nothing - lt_pp04_cache header line has rtg#
    ELSE.
      get the routing group # from MAPL
      put it in the cache internal table
       IF NOT l_mapl_plnnr IS INITIAL.
         lt_pp04_cache-matnr = pi_matnr.
         lt_pp04_cache-werks = pi_werks.
         lt_pp04_cache-alnag = pi_alnag.
         lt_pp04_cache-plnnr = l_mapl_plnnr.
         APPEND lt_pp04_cache.
       ENDIF.
    ENDIF.
    if the rtg# was determined AND
    -- the work center was not determined yet AND
    -- work center was really needed for this line in the input file
    then
    -- read the work center from last PP04 operation on the routing
    -- update the cache accordingly
    IF NOT lt_pp04_cache-plnnr IS INITIAL AND
            lt_pp04_cache-arbpl IS INITIAL AND
        ( pi_verid IS INITIAL OR
          pi_mdv01 IS INITIAL ).
      read the last PP04 operation
       CLEAR   lt_plpo.
       REFRESH lt_plpo.
       SELECT vornr eobjty eobjid e~arbpl
         INTO CORRESPONDING FIELDS OF TABLE lt_plpo
         FROM plas AS b
              INNER JOIN plpo AS c
                    ON bplnty = cplnty AND
                       bplnnr = cplnnr AND
                       bzaehl = czaehl
              INNER JOIN crhd AS e
                    ON carbid = eobjid
        WHERE b~plnty = v_plnty             AND
              b~plnnr = lt_pp04_cache-plnnr AND
              b~plnal = lt_pp04_cache-alnag AND
              c~loekz = space               AND
              c~steus = v_plpo_steus        AND
              e~objty = v_objty             AND
              e~werks = lt_pp04_cache-werks AND
              e~verwe = v_verwe.
       SORT lt_plpo BY vornr DESCENDING.
       READ TABLE lt_plpo INDEX 1.
       IF NOT lt_plpo-arbpl IS INITIAL.
         lt_pp04_cache-arbpl = lt_plpo-arbpl.
        read work center description
         SELECT SINGLE ktext INTO lt_pp04_cache-ktext
           FROM crtx WHERE objty = lt_plpo-objty AND
                           objid = lt_plpo-objid AND
                           spras = sy-langu.
        the following read will get the index of the correct record to be
        updated in the cache
         READ TABLE lt_pp04_cache
              WITH KEY matnr = pi_matnr
                       werks = pi_werks
                       alnag = pi_alnag.
         MODIFY lt_pp04_cache
                INDEX sy-tabix
                TRANSPORTING arbpl ktext.
       ENDIF.
    ENDIF.
    endform.                    " read_last_pp04_operation_cache
    *&      Form  read_wc_on_last_pp04
    form read_wc_on_last_pp04 using    pi_plnnr
                                       pi_plnal
                              changing pe_arbpl.
      data: begin of lt_plpo occurs 0,
              vornr like plpo-vornr,
              objty like crhd-objty,
              objid like crhd-objid,
              arbpl like crhd-arbpl,
            end of lt_plpo.
    get all the PP04 operations for the given rtg# & grp-ctr#
      select vornr eobjty eobjid e~arbpl
        into corresponding fields of table lt_plpo
        from plas as b
             inner join plpo as c
                   on bplnty = cplnty and
                      bplnnr = cplnnr and
                      bzaehl = czaehl
             inner join crhd as e
                   on carbid = eobjid
       where b~plnty = v_plnty          and           "Rate Routing
             b~plnnr = pi_plnnr         and
             b~plnal = pi_plnal         and
             c~loekz = space            and           "Oper Del Flag = OFF
             c~steus = v_plpo_steus     and           "PP04
             e~objty = v_objty.                       "WC Obj Type = 'A'
    read the last operation
      sort lt_plpo by vornr descending.
      read table lt_plpo index 1.
      pe_arbpl = lt_plpo-arbpl.
    endform.                    " read_wc_on_last_pp04
    Reward Points if it is useful
    Thanks
    Seshu

  • Bdc session sample program

    Hi,
    Please any body send a sample program for bdc session method.
    Thanks,
    sreedhar.

    See the BDC Session method program :
    report zmppc011 no standard page heading line-size 120 line-count 55
       message-id zz.
    pool of form routines
    include zmppn001.
    Define BDC Table Structure
    data: begin of itab_bdc_tab occurs 0.
            include structure bdcdata.
    data: end of itab_bdc_tab.
    Input record layout of Leagcy File
    data: begin of itab_xcel occurs 0,
            matnr(18)  type c,
            werks(4)   type c,
            alnag(2)   type c,
            verid(4)   type c,
            text1(40)  type c,
            bstmi      like mkal-bstmi,
            bstma      like mkal-bstma,
            adatu(10)  type c,
            bdatu(10)  type c,
            stlal(2)   type c,
            stlan(1)   type c,
            serkz(1)   type c,
            mdv01(8)   type c,
            elpro(4)   type c,
            alort(4)   type c,
          end of itab_xcel.
    data: begin of lt_pp04_cache occurs 0,
            matnr like itab_xcel-matnr,
            werks like itab_xcel-werks,
            alnag like itab_xcel-alnag,
            plnnr like mapl-plnnr,
            arbpl like crhd-arbpl,
            ktext like crtx-ktext,
          end of lt_pp04_cache.
    data: v_ssnnr(4)      type n,
          v_lines_in_xcel like sy-tabix,
          v_ssnname       like apqi-groupid,
          v_trans_in_ssn  type i,
         wa_xcel         LIKE itab_xcel,
          l_tabix         like sy-tabix,
          v_matnr         like rc27m-matnr,
          v_plnnr         like mapl-plnnr,
          v_plnal         like mapl-plnal,
          v_tcode         like sy-tcode value 'C223',
          v_plnty         like plas-plnty value 'R',
          v_objty         like crhd-objty value 'A',
          v_plpo_steus    like plpo-steus value 'PP04',
          v_verwe         like crhd-verwe value '0007'.
    Parameters
    selection-screen: skip 3.
    selection-screen: begin of block 1 with frame.
    parameters: p_name        like rlgrap-filename
                              default 'C:\My Documents\InputFile.txt'
                              obligatory,
    bdc session name prefix
                p_bdcpfx(6)   default 'ZPVCRT'
                              obligatory,
    number for transction per BDC session
                p_trnssn      type i
                              default 2000 obligatory,
    retain the BDC session after successfull execution
                p_keep        like apqi-qerase
                              default 'X',
    user who will be executing BDC session
                p_uname       like apqi-userid
                              default sy-uname
                              obligatory.
    selection-screen: end of block 1.
    possible entry list (F4 dropdown) for input file name
    at selection-screen on value-request for p_name.
    *-SELECT FILE FROM USERS LOCAL PC
      call function 'WS_FILENAME_GET'
          exporting
             DEF_FILENAME     = ' '
               def_path         = 'C:\Temp\'
               mask             = ',.,..'
               mode             = 'O'
               title            = 'Select File '(007)
          importing
               filename         = p_name
             RC               =
          exceptions
               inv_winsys       = 1
               no_batch         = 2
               selection_cancel = 3
               selection_error  = 4
               others           = 5.
      if sy-subrc <> 0.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    begin the show
    start-of-selection.
    read data from input file
      perform transfer_xcel_to_itab.
      loop at itab_xcel.
      hang on to xcel line num
        l_tabix = sy-tabix.
      each line in the xcel file marks begining of new prod.version defn
      if num-of-trnas-in-session = 0, create new BDC session
        if v_trans_in_ssn is initial.
          perform bdc_session_open.
        endif.
      begin new bdc script for rtg create trans
      fill in bdc-data for prod.version maintenance screens
        perform bdc_build_script.
      insert the bdc script as a BDC transaction
        perform bdc_submit_transaction.
      keep track of how many BDC transactions were inserted in the BDC
      session
        add 1 to v_trans_in_ssn.
      if the user-specified num of trans in BDC session is reached OR
      if end of input file is reached, close the BDC session
        if v_trans_in_ssn = p_trnssn or
           l_tabix = v_lines_in_xcel.
          perform bdc_session_close.
          clear v_trans_in_ssn.
        endif.
      endloop.
    top-of-page.
      call function 'Z_HEADER'
    EXPORTING
      FLEX_TEXT1       =
      FLEX_TEXT2       =
      FLEX_TEXT3       =
          FORM TRANSFER_XCEL_TO_ITAB                                    *
          Transfer Xcel Spreadsheet to SAP Internal Table               *
    form transfer_xcel_to_itab.
    Read the tab-delimited file into itab
      call function 'WS_UPLOAD'
           exporting
                filename            = p_name
                filetype            = 'DAT'
          IMPORTING
               filelength          = flength
           tables
                data_tab            = itab_xcel
           exceptions
                conversion_error    = 1
                file_open_error     = 2
                file_read_error     = 3
                invalid_table_width = 4
                invalid_type        = 5
                no_batch            = 6
                unknown_error       = 7
                others              = 8.
      if sy-subrc = 0.
      sort the data
        sort itab_xcel by matnr werks.
        clear v_lines_in_xcel.
      if no data in the file - error out
        describe table itab_xcel lines v_lines_in_xcel.
        if v_lines_in_xcel is initial.
          write: / 'No data in input file'.
          stop.
        endif.
      else.
      if file upload failed - error out
        write: / 'Error reading input file'.
        stop.
      endif.
    endform.
          FORM BDC_SESSION_OPEN                                         *
          Open BDC Session                                              *
    form bdc_session_open.
    create bdc session name = prefix-from-selectn-screen + nnnn
      add 1 to v_ssnnr.
      concatenate p_bdcpfx v_ssnnr into v_ssnname.
    open new bdc session
      call function 'BDC_OPEN_GROUP'
           exporting
                client              = sy-mandt
                group               = v_ssnname
                keep                = p_keep
                user                = p_uname
           exceptions
                client_invalid      = 1
                destination_invalid = 2
                group_invalid       = 3
                group_is_locked     = 4
                holddate_invalid    = 5
                internal_error      = 6
                queue_error         = 7
                running             = 8
                system_lock_error   = 9
                user_invalid        = 10
                others              = 11.
    endform.
          FORM BDC_BUILD_SCRIPT                                         *
          Build BDC                                                     *
    form bdc_build_script.
      data: l_arbpl like crhd-arbpl,
            l_text1 like mkal-text1,
            l_mdv01 like mkal-mdv01,
            l_mapl  like mapl.
    clear bdc-data itab - begin of new bdc transaction
      clear   itab_bdc_tab.
      refresh itab_bdc_tab.
    read material cross reference tables to determine sap part#
      clear : v_matnr, v_plnnr, v_plnal.
      perform read_matnr_cross_ref using itab_xcel-matnr
                                         itab_xcel-werks
                                   changing v_matnr.
    determine the version description to use
      if itab_xcel-text1 is initial.
        l_text1 = itab_xcel-verid.
      else.
        l_text1 = itab_xcel-text1.
      endif.
    determine the routing group# and group ctr# to use
      perform read_routing .
    determine the production line to use
      if itab_xcel-mdv01 is initial.
      if not provided in the file then:
      prod line = work ctr on the last PP04 op of the rtg determined above
        perform read_wc_on_last_pp04 using v_plnnr v_plnal
                                  changing l_mdv01.
      NOTE: when executing the above form\routine, if v_plnnr is initial
            or v_plnal is initial, THEN l_mdv01 will automatically be
            returned blank (ie initial)
      else.
        l_mdv01 = itab_xcel-mdv01.
      endif.
    build bdc script
      perform bdc_build_script_record
    fill in initial screen
              using: 'X' 'SAPLCMFV'         '1000',
                     ' ' 'BDC_OKCODE'       '=ENTE',
                     ' ' 'MKAL-WERKS'       itab_xcel-werks,
                     ' ' 'MKAL-MATNR'       v_matnr,
                     ' ' 'MKAL_ADMIN-DISPO' space,
                     ' ' 'MKAL-PLNNR'       space,
                     ' ' 'MKAL_ADMIN-STTAG' space,
                     ' ' 'MKAL-PLNNG'       space,
                     ' ' 'MKAL-MDV01'       space,
                     ' ' 'MKAL-PLNNM'       space,
    click create button on initial screen and go to detail screen
                     'X' 'SAPLCMFV'         '1000',
                     ' ' 'BDC_OKCODE'       '=CREA',
    fill in the detail screen and go back to initial screen
                     'X' 'SAPLCMFV'           '2000',
                     ' ' 'BDC_OKCODE'         '=CLOS',
                     ' ' 'MKAL_EXPAND-MATNR'  v_matnr,
                     ' ' 'MKAL_EXPAND-VERID'  itab_xcel-verid,
                     ' ' 'MKAL_EXPAND-TEXT1'  l_text1,
                     ' ' 'MKAL_EXPAND-BSTMI'  itab_xcel-bstmi,
                     ' ' 'MKAL_EXPAND-BSTMA'  itab_xcel-bstma,
                     ' ' 'MKAL_EXPAND-ADATU'  itab_xcel-adatu,
                     ' ' 'MKAL_EXPAND-BDATU'  itab_xcel-bdatu,
                     ' ' 'MKAL_EXPAND-PLTYG'  v_plnty,
                     ' ' 'MKAL_EXPAND-PLNNG'  v_plnnr,
                     ' ' 'MKAL_EXPAND-ALNAG'  v_plnal,
                     ' ' 'MKAL_EXPAND-STLAL'  itab_xcel-stlal,
                     ' ' 'MKAL_EXPAND-STLAN'  itab_xcel-stlan,
                     ' ' 'MKAL_EXPAND-SERKZ'  itab_xcel-serkz,
                     ' ' 'MKAL_EXPAND-MDV01'  l_mdv01,
                     ' ' 'MKAL_EXPAND-ELPRO'  itab_xcel-elpro,
                     ' ' 'MKAL_EXPAND-ALORT'  itab_xcel-alort,
    save the production version from initial screen
                     'X' 'SAPLCMFV'           '1000',
                     ' ' 'BDC_OKCODE'         '=SAVE'.
    endform.
          FORM BDC_SUBMIT_TRANSACTION                                   *
          Submit BDC Session                                            *
    form bdc_submit_transaction.
    Load BDC script as a trqansction in BDC session
      call function 'BDC_INSERT'
           exporting
                tcode          = v_tcode
           tables
                dynprotab      = itab_bdc_tab
           exceptions
                internal_error = 01
                not_open       = 02
                queue_error    = 03
                tcode_invalid  = 04.
    endform.
          FORM BDC_BUILD_SCRIPT_RECORD                                  *
    form bdc_build_script_record using dynbegin name value.
      clear itab_bdc_tab.
      if dynbegin = 'X'.
        move: name  to itab_bdc_tab-program,
              value to itab_bdc_tab-dynpro,
              'X'   to itab_bdc_tab-dynbegin.
      else.
        move: name  to itab_bdc_tab-fnam,
              value to itab_bdc_tab-fval.
        shift itab_bdc_tab-fval left deleting leading space.
      endif.
      append itab_bdc_tab.
    endform.
          FORM BDC_SESSION_CLOSE                                        *
          Close BDC Session                                             *
    form bdc_session_close.
    close the session
      call function 'BDC_CLOSE_GROUP'
           exceptions
                not_open    = 1
                queue_error = 2
                others      = 3.
      skip 2.
      if sy-subrc ne 0.
        write: / 'Error Closing BDC Session ' , 'RETURN CODE: ', sy-subrc.
      else.
        write : /  'Session created:', v_ssnname,
                50 '# of transactions:', v_trans_in_ssn.
      endif.
    endform.
    *&      Form  read_routing_cache
    *FORM read_routing_cache USING    pi_matnr
                                    pi_werks
                                    pi_alnag
                                    pi_verid
                                    pi_mdv01.
    DATA: BEGIN OF lt_plpo OCCURS 0,
             vornr LIKE plpo-vornr,
             objty LIKE crhd-objty,
             objid LIKE crhd-objid,
             arbpl LIKE crhd-arbpl,
           END OF lt_plpo,
           l_mapl_plnnr LIKE mapl-plnnr.
    determine the routing group#
    CLEAR lt_pp04_cache.
    chk if its in the cache first, if not then get it from MAPL table
    and put it in the cache
    READ TABLE lt_pp04_cache WITH KEY matnr = pi_matnr
                                       werks = pi_werks
                                       alnag = pi_alnag.
    IF sy-subrc = 0.
      do nothing - lt_pp04_cache header line has rtg#
    ELSE.
      get the routing group # from MAPL
       SELECT plnnr INTO l_mapl_plnnr
         FROM mapl UP TO 1 ROWS
        WHERE matnr = pi_matnr    AND
              werks = pi_werks    AND
              plnty = 'R'         AND
              plnal = pi_alnag    AND
              loekz = space.
       ENDSELECT.
      put it in the cache internal table
       IF NOT l_mapl_plnnr IS INITIAL.
         lt_pp04_cache-matnr = pi_matnr.
         lt_pp04_cache-werks = pi_werks.
         lt_pp04_cache-alnag = pi_alnag.
         lt_pp04_cache-plnnr = l_mapl_plnnr.
         APPEND lt_pp04_cache.
       ENDIF.
    ENDIF.
    if the rtg# was determined AND
    -- the work center was not determined yet AND
    -- work center was really needed for this line in the input file
    then
    -- read the work center from last PP04 operation on the routing
    -- update the cache accordingly
    IF NOT lt_pp04_cache-plnnr IS INITIAL AND
            lt_pp04_cache-arbpl IS INITIAL AND
        ( pi_verid IS INITIAL OR
          pi_mdv01 IS INITIAL ).
      read the last PP04 operation
       CLEAR   lt_plpo.
       REFRESH lt_plpo.
       SELECT vornr eobjty eobjid e~arbpl
         INTO CORRESPONDING FIELDS OF TABLE lt_plpo
         FROM plas AS b
              INNER JOIN plpo AS c
                    ON bplnty = cplnty AND
                       bplnnr = cplnnr AND
                       bzaehl = czaehl
              INNER JOIN crhd AS e
                    ON carbid = eobjid
        WHERE b~plnty = v_plnty             AND
              b~plnnr = lt_pp04_cache-plnnr AND
              b~plnal = lt_pp04_cache-alnag AND
              c~loekz = space               AND
              c~steus = v_plpo_steus        AND
              e~objty = v_objty             AND
              e~werks = lt_pp04_cache-werks AND
              e~verwe = v_verwe.
       SORT lt_plpo BY vornr DESCENDING.
       READ TABLE lt_plpo INDEX 1.
       IF NOT lt_plpo-arbpl IS INITIAL.
         lt_pp04_cache-arbpl = lt_plpo-arbpl.
        read work center description
         SELECT SINGLE ktext INTO lt_pp04_cache-ktext
           FROM crtx WHERE objty = lt_plpo-objty AND
                           objid = lt_plpo-objid AND
                           spras = sy-langu.
        the following read will get the index of the correct record to be
        updated in the cache
         READ TABLE lt_pp04_cache
              WITH KEY matnr = pi_matnr
                       werks = pi_werks
                       alnag = pi_alnag.
         MODIFY lt_pp04_cache
                INDEX sy-tabix
                TRANSPORTING arbpl ktext.
       ENDIF.
    ENDIF.
    *ENDFORM.                    " read_last_pp04_operation_cache
    *&      Form  read_routing
    form read_routing.
      data: begin of lt_mapl occurs 0,
              plnnr like mapl-plnnr,
              plnal like mapl-plnal,
            end of lt_mapl,
            l_arbpl like crhd-arbpl.
    get all the rtg# and grp ctr# from MAPL
      select plnnr plnal
        into corresponding fields of table lt_mapl
        from mapl
       where matnr = v_matnr          and
             werks = itab_xcel-werks  and
             plnty = v_plnty          and     "Rate Routing
             loekz = space.                   "with del flag = OFF
      sort lt_mapl by plnal.
      if not itab_xcel-verid is initial.
      if the verid=0001 then use the 1st good rtg-grp# and grp-ctr#
        if itab_xcel-verid = '0001'.
          read table lt_mapl index 1.
          v_plnnr = lt_mapl-plnnr.
          v_plnal = lt_mapl-plnal.
        else.
      if the verid<>0001 then use the rtg-grp# and grp-ctr# of the routing
      whose work center on the last PP04 operation matches the given verid
          loop at lt_mapl.
            clear l_arbpl.
          get the work center from the last PP04 operation
            perform read_wc_on_last_pp04 using lt_mapl-plnnr
                                               lt_mapl-plnal
                                      changing l_arbpl.
            if itab_xcel-verid = l_arbpl.
              v_plnnr = lt_mapl-plnnr.
              v_plnal = lt_mapl-plnal.
              exit.
            endif.
          endloop.
        endif.
      else.
      do nothing
      endif.
    For version IDs that are other then '0000' or 'ZWIP' :--
      if itab_xcel-verid NE '0000' and
         itab_xcel-verid NE 'ZWIP'.
      if routing group# or group counter was not determined, make the
      valid-to date 99/99/9999 so that the BDC, on execution, errors out.
        if v_plnnr is initial or
           v_plnal is initial.
          itab_xcel-bdatu = '99/99/9999'.
        endif.
      endif.
    determine the routing group#
    CLEAR lt_pp04_cache.
    chk if its in the cache first, if not then get it from MAPL table
    and put it in the cache
    READ TABLE lt_pp04_cache WITH KEY matnr = pi_matnr
                                       werks = pi_werks
                                       alnag = pi_alnag.
    IF sy-subrc = 0.
      do nothing - lt_pp04_cache header line has rtg#
    ELSE.
      get the routing group # from MAPL
      put it in the cache internal table
       IF NOT l_mapl_plnnr IS INITIAL.
         lt_pp04_cache-matnr = pi_matnr.
         lt_pp04_cache-werks = pi_werks.
         lt_pp04_cache-alnag = pi_alnag.
         lt_pp04_cache-plnnr = l_mapl_plnnr.
         APPEND lt_pp04_cache.
       ENDIF.
    ENDIF.
    if the rtg# was determined AND
    -- the work center was not determined yet AND
    -- work center was really needed for this line in the input file
    then
    -- read the work center from last PP04 operation on the routing
    -- update the cache accordingly
    IF NOT lt_pp04_cache-plnnr IS INITIAL AND
            lt_pp04_cache-arbpl IS INITIAL AND
        ( pi_verid IS INITIAL OR
          pi_mdv01 IS INITIAL ).
      read the last PP04 operation
       CLEAR   lt_plpo.
       REFRESH lt_plpo.
       SELECT vornr eobjty eobjid e~arbpl
         INTO CORRESPONDING FIELDS OF TABLE lt_plpo
         FROM plas AS b
              INNER JOIN plpo AS c
                    ON bplnty = cplnty AND
                       bplnnr = cplnnr AND
                       bzaehl = czaehl
              INNER JOIN crhd AS e
                    ON carbid = eobjid
        WHERE b~plnty = v_plnty             AND
              b~plnnr = lt_pp04_cache-plnnr AND
              b~plnal = lt_pp04_cache-alnag AND
              c~loekz = space               AND
              c~steus = v_plpo_steus        AND
              e~objty = v_objty             AND
              e~werks = lt_pp04_cache-werks AND
              e~verwe = v_verwe.
       SORT lt_plpo BY vornr DESCENDING.
       READ TABLE lt_plpo INDEX 1.
       IF NOT lt_plpo-arbpl IS INITIAL.
         lt_pp04_cache-arbpl = lt_plpo-arbpl.
        read work center description
         SELECT SINGLE ktext INTO lt_pp04_cache-ktext
           FROM crtx WHERE objty = lt_plpo-objty AND
                           objid = lt_plpo-objid AND
                           spras = sy-langu.
        the following read will get the index of the correct record to be
        updated in the cache
         READ TABLE lt_pp04_cache
              WITH KEY matnr = pi_matnr
                       werks = pi_werks
                       alnag = pi_alnag.
         MODIFY lt_pp04_cache
                INDEX sy-tabix
                TRANSPORTING arbpl ktext.
       ENDIF.
    ENDIF.
    endform.                    " read_last_pp04_operation_cache
    *&      Form  read_wc_on_last_pp04
    form read_wc_on_last_pp04 using    pi_plnnr
                                       pi_plnal
                              changing pe_arbpl.
      data: begin of lt_plpo occurs 0,
              vornr like plpo-vornr,
              objty like crhd-objty,
              objid like crhd-objid,
              arbpl like crhd-arbpl,
            end of lt_plpo.
    get all the PP04 operations for the given rtg# & grp-ctr#
      select vornr eobjty eobjid e~arbpl
        into corresponding fields of table lt_plpo
        from plas as b
             inner join plpo as c
                   on bplnty = cplnty and
                      bplnnr = cplnnr and
                      bzaehl = czaehl
             inner join crhd as e
                   on carbid = eobjid
       where b~plnty = v_plnty          and           "Rate Routing
             b~plnnr = pi_plnnr         and
             b~plnal = pi_plnal         and
             c~loekz = space            and           "Oper Del Flag = OFF
             c~steus = v_plpo_steus     and           "PP04
             e~objty = v_objty.                       "WC Obj Type = 'A'
    read the last operation
      sort lt_plpo by vornr descending.
      read table lt_plpo index 1.
      pe_arbpl = lt_plpo-arbpl.
    endform.                    " read_wc_on_last_pp04

  • Error while executing SSIS package - Error: 4014, Severity:20, State: 11. A fatal error occurred while reading the input stream from the network. The session will be terminated (input error: 109, output error: 0)

    Hi,
    We are getting the following error when running our SSIS packages on Microsoft SQL Server 2012 R2 on Windows Server 2008 R2 SP1:
    Error: 4014, Severity:20, State: 11.   A fatal error occurred while reading the input stream from the network. The session will be terminated (input error: 109, output error: 0)
    SQL Server Data Tools and SQL Server Database Engine reside on the same server.
    We tried the following:
    Disabling TCP Chimney Offload
    Installed Windows Server 2008 SP1
    Splitting our SSIS code into multiple steps so it is not all one large continuous operation
    The error occurs during a BulkDataLoad task.
    Other options we are investigating with the engineering team (out-sourced, so delayed responses):
    Firewall configurations (everything is local, so this should not make a difference)
    Disabling the anti-virus scanner
    Are there other things we can try?
    Any insight is greatly appreciated.
    Thanks!

    Hi HenryKwan,
    Based on the current information, the issue can be caused by many reasons. Please refer to the following tips:
    Install the latest hotfix based on your SQL Server version. Ps: there is no SQL Server 2012 R2 version.
    Change the MaxConcurrentExecutables property from -1 to another one based on the MAXDOP. For example, 8.
    Set "RetainSameConnection" Property to FALSE on the all the connection managers.
    Reference:
    https://connect.microsoft.com/SQLServer/feedback/details/774370/ssis-packages-abort-with-unexpected-termination-message
    If the issue is still existed, as Jakub suggested, please provide us more information about this issue.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • BDC programs affected after system copy.

    Dear All,
    We are facing a problem after system copy with regards to the HR module.
    Client have created a BDC programs and it was running fine in the old server.
    After the system refresh, one of the BDC is having problem and following is the brief,
    1. While running a user transaction in FOREGROUND, the program is running correctly and in BACKGROUND the program is calling some other action which is not recorded in the BDC. One observation was made that, while running in DEBUG mode, with the background option, the program runs correctly.
    2. In program we are calling 2 PA40 actions, whose sequence no. are 28 and 61 resp. In background mode the program calling some other PA40 action whose seq no is 22.
    Is there anything we are missing in the profile or some settings in the applications to run the BDC program correctly?
    Regards
    Pras

    No, I haven't run that transaction.
    I have checked the old server, and the logical system is PRDCABS500 and the same is present in the new system.
    But I am amaze that the other BDC's are working fine, just 1-2 bdc are having problems?
    I have checked BD54 in new system its still showing the old..
    What do you recommend and when should this activity to be done( I information says that no users should be present?).
    Edited by: Prashant Dhas on Jun 13, 2008 7:05 AM

  • Regarding BDC session to run immediately after creation

    Hi Abapers,
    Please help me out from the following situation.
    I need to run the BDC session immediately after creating. I beleive using RSBDCSUB we can achieve it.
    If it so please let me know how can we use this.....
    Please let me know if any other solutions.
    Thanx in advance.
    will reward with points for the usefull answers.

    Hi Sir ,
    Please have a look below .Hope it is suitable and simpler solution for your question.
    Please do reward if useful.
    Thankx.
    If user want BDC in foreground use a CALL TRANSACTION and don't create a BDC butt fill a BDCDATA structure table and then
    codeCALL TRANSACTION 'transaction' USING itab[/code]
    You can specify the way to process in OPTIONS and MODE parameters.
    Look at
    Using CALL TRANSACTION USING for Data Transfer
    something like
    if foreground is initial.
    BDC_OPEN_GROUP
    endif.
    fill bdcdata
    if foreground is initial.
    BDC_INSERT
    BDC_CLOSE_GROUP
    SUBMIT RSBDCSUB WITH MAPPE = group_name
    else.
    CALL transaction USING data MODE mode.
    endif.
    CODE  --->
    code
    DATA : w_nom TYPE apq_grpn ,
    w_kbetr(16) ,
    w_datab(10) ,
    w_datbi(10) ,
    w_kpein(5) ,
    w_kmein(3) .
    CHECK is_data-flag EQ 'A' OR
    is_data-flag EQ 'B' OR
    is_data-flag EQ 'C'.
    REFRESH itg_bdcdata.
    Batch-input name.
    CONCATENATE 'Hauss_'
    sy-uzeit
    is_data-knumh+4(6)
    INTO w_nom.
    Open Batch-input.
    PERFORM p_open_bdc USING w_nom.
    Choix type cond.
    PERFORM p_bdc_dynpro USING 'SAPMV13A'
    '0100'.
    PERFORM p_bdc_field USING 'BDC_OKCODE'
    '=ANTA'.
    PERFORM p_bdc_field USING 'RV13A-KSCHL'
    gw_kschl.
    Choix de la clef.
    PERFORM p_bdc_dynpro USING 'SAPLV14A'
    '0100'.
    PERFORM p_bdc_field USING 'BDC_OKCODE'
    '=WEIT'.
    PERFORM p_bdc_field USING 'RV130-SELKZ(01)'
    'X'.
    Enregistre la nouvelle condition.
    PERFORM p_bdc_dynpro USING 'SAPMV13A'
    '1510'.
    PERFORM p_bdc_field USING 'BDC_OKCODE'
    '=SICH'.
    PERFORM p_bdc_field USING 'KOMG-VKORG'
    is_data-vkorg.
    PERFORM p_bdc_field USING 'KOMG-VTWEG'
    is_data-vtweg.
    PERFORM p_bdc_field USING 'KOMG-KUNNR'
    is_data-kunnr.
    PERFORM p_bdc_field USING 'KOMG-MATNR'
    is_data-matnr.
    PERFORM p_bdc_field USING 'KOMG-WERKS'
    is_data-werks.
    PERFORM p_bdc_field USING 'KOMG-AUART_SD'
    is_data-auart_sd.
    PERFORM p_bdc_field USING 'KOMG-INCO1(01)'
    is_data-inco1.
    WRITE is_data-kbetr2 TO w_kbetr.
    PERFORM p_bdc_field USING 'KONP-KBETR(01)'
    w_kbetr.
    WRITE is_data-kpein TO w_kpein.
    PERFORM p_bdc_field USING 'KONP-KPEIN(01)'
    w_kpein.
    WRITE is_data-kmein TO w_kmein.
    PERFORM p_bdc_field USING 'KONP-KMEIN(01)'
    w_kmein.
    WRITE is_data-datab TO w_datab.
    PERFORM p_bdc_field USING 'RV13A-DATAB(01)'
    w_datab.
    WRITE is_data-datbi TO w_datbi.
    PERFORM p_bdc_field USING 'RV13A-DATBI(01)'
    w_datbi.
    Save the transaction.
    PERFORM p_insert_bdc USING 'VK11'.
    Close the Batch-input..
    PERFORM p_close_bdc.
    COMMIT WORK AND WAIT.
    SUBMIT rsbdcsub WITH mappe = w_nom
    WITH von = sy-datum
    WITH bis = sy-datum
    EXPORTING LIST TO MEMORY
    AND RETURN.[/code]

  • System.out.println statements inside my session beans

    I have some System.out.println statements inside my session beans to track some error conditions. I would like to know where this output will be printed. Is there any text file I should look for or start up any console to see the output.
    I am running iPlanet SP3 test drive edition iPlanet Web Server 4.1 on WIndows NT machine.

    Hi,
    These statements will be printed on the kjs logs file. To view them, go to control panel-> services-> select the iPlanet Application server and click "start up" tab. Check " allow this sevice to interact with the desk top" in the service window that has been popped up. Restart the iPlanet Application server.
    View the kjs window. All your System.out.println statements will be printed out there.
    If you have any further queries please get back to the forum.
    Thanks for visiting our web forum,
    Rakesh.

  • What is structure of BDC session?

    Hi Experts,
    What is structure of BDC session?
    Thanks
    ~Sid
    "Max points are assured"

    Hi,
    If you want to write your own program, proceed as follows:
    Generate the batch input session using function module BDC_OPEN_GROUP
    The proceed as follows for each transaction that session contains:
    In the BDCDATA structure, enter the value for all screens and fields that must be processed in the transaction.
    Use BDC_INSERT to transfer the transaction and BDCDATA structure to the session.
    Close the batch input session with BDC_CLOSE_GROUP
    Start to process the generated session.
    BDC_OPEN_GROUP
    Use the BDC_OPEN_GROUP function module to create a new session. Once you have created a session, then you can insert batch input data into it with BDC_INSERT.
    You cannot reopen a session that already exits and has been closed. If you call BDC_OPEN_GROUP with the name of an existing session, then an additional session with the same name is created.
    A batch input program may have only one session open at a time. Before opening a session, make sure that any sessions that program closes any sessions that it previously had opened.
    BDC_OPEN_GROUP takes the following EXPORTING parameters:
    CLIENT
    Client in which the session is to be processed. Default: If you don’t provide a value for this parameter, the default is the client under which the bathc input program runs when the session is created.
    GROUP
    Name of the session that is to be created. May up to 12 characters long. Default: None. You must specify a session name.
    HOLDDATE
    Lock date. The session is locked and may not be processed until after the date that you specified. Only a system administrator with the LOCK authorization for the authorization object Batch Input Authorizations can unlock and run a session before this date.
    KEEP
    Retain session after successful processing. Set this option to the value X to have a session kept after it has been successfully processed. A session that is kept remains in the input/output queue until an administrator deleletes it. Sessions that contain errors in transactions are kept even if KEEP is not set. Default: If not set, then sessions that are successfully processed are deleted. Only the batch input log is kept.
    USER
    Authorizations user for background processing. This is the user name that is used for checking authorizations if a session is started in background processing. The user must be authorized for all of transactions and functions that are to be executed in a session. Otherwise, transactions will be terminated with “no authorization” errors. The user can be of type dialog or background. Dialog users are normal interactive users in the R/3 System. Background users are user master records that are specially defined for providing authorizations for background processing jobs.
    BDC_INSERT
    Use the BDC_INSERT function module to add a transaction to a batch input session. You specify the transaction that is to be started in the call to BDC_INSERT. You must provide a BDCDATA structure that contains all of the data required to process the transaction completely.
    BDC_INSERT takes the following parameters:
    TCODE
    The code of the transaction that is to be run.
    POST_LOCAL
    Parameter to update data locally. If POST_LOCAL = “X”, data will be updated locally.
    DYNPROTAB
    The BDCDATA structure that contains the data that is to be processed by the transaction. DYNPROTAB is a table parameter in the function module.
    BDC_CLOSE_GROUP
    Use the BDC_CLOSE_GROUP function module to close a session after you have inserted all of your batch input data into it. Once a session is closed, it can be processed.
    BDC_CLOSE_GROUP needs no parameters. It automatically closes the session that is currently open in your program. You must close a session before you can open another session from the same program.
    BDCDATA Structure
    IF you want to write data to a batch input session or to process the data using CALL TRANSACTION USING or CALL DIALOG, you must prepare an internal table <bdc_tab>. This internal table must be structured according to ABAP Dictionary structure BDCDATA. The internal table <bdc_tab> stores the data that is to be entered into R/3 System and the actions that are necessary to process data. You can think of the table as storing the script that the R/3 System is to follow in processing batch input data.
    BDC table structure
    FIELD                     TYPE                            DESCRIPTION
    Program                CHAR (8)                      Program name of transaction.
    DynPro                   CHAR (4)                      Screen number of transaction.
    DynBegin               CHAR (1)                      Indicator for new screen.
    Fnam                     CHAR (35)                     Name of database field from screen.
    Fval                                   CHAR (80)                     Value to submit to field.
    Regards,
    Omkar.
    Message was edited by:
            Omkaram Yanamala

  • Bdc session in status being created

    Hi..
    I have a custom program that creates bdc sessions. For some of the sessions it created, the status of the session is being created.
    when i click on analysis of that session: it has
    1 transaction with 8 screens in new
    1 transaction with 8 screens in to process
    1 transaction with 8 screens in current content
    1 transaction with 8 screens in removed with - ve sign after 1 and 8.
    0 transaction with 0 screens in (created, deleted, processed and incorrect)
    Can someone tell me what might be the reason for the session to be in being created?
    Appreciate your help and will reward helpful answers.
    Thanks,
    RK

    Yes. As I said before thsi is because the BDC_CLOSE was not executed. You are seeign them as being created could be because soem was was tryign to debug the program and woudl have jumped out of the program half way. In this case the BDC_CLOSE would not have executed and the session will remain as 'Being created'. You dont have to worry abt it and it is purely because of partial execution of the program. You can try it on yoru own by gettign into the debugging mode and terminate the program after BDC_OPEN FM is executed. You will see another session with status beign created. The number of transaction in this session will depend on what point did you terminate the program.
    - Guru
    Reward points for helpful answers

  • Bdc sessions Issues

    I have a users who is trying to process a BDC session in sm35 and they are getting you are unable to schedule session XXXX.
    I checked sm35 and they have access to it
    And object S_BDC_MONI has values of ABTC, ANAL, AND AONL.
    Nothing happens of course they are offsight so an su53 I am unable to do now............any suggestions.
    THANKS!!!!

    Maritza,
    There are many reasons why ST01 is not showing results.  Try practicing with it in one of your test systems or see if anyone in your area has used it before who may provide assistance.
    Try one other thing after the user runs the transaction.  You run SU53.  Then hit F5 and put in the user ID of the user with the issue.  See what object shows up.
    Cheers,
    Ben

  • Delete session after error 023 and WP has reached abap/heaplimit = 40000000

    Hello,
    I had upgraded my system's kernel to 7.21 401 last weekend and started getting below errors.
         "Delete session after error 023" and "WP has reached abap/heaplimit = 40000000"
    When I change the abap/heaplimit parameter to 6000000000 program runs without error.
    This parameter value is out of max value of this parameter.
    I donot want to give the parameter over max allowed value.
    I also changed dbsl patch to 7.21 418 but no solution.
    I searched through sap notes and scn but could not find an answer to my problem.
    What could be the relation between kernel upgrade and this parameter?
    Why the program was working with Kernel 7.21 316 and not working with 7.21 401?
    I inserted SM21 and developer trace file below.
    Can you help about the issue, please?
    Thanks and Regards,
    Yuksel AKCINAR
    SM21:
         11:56:52 DIA  010 200 USER1 TX01          R4  7 Delete session 004 after error 023
    dev_wx:
    L Fri Mar 13 11:52:31 2015
    L  EVTSDL: Begin of FORM PROCESS_EVENT_TRIGGERED_JOBS
    L  EVTSDL:    Event raised: SAP_END_OF_JOB
    L  EVTSDL:    Event parameters: SLCA_LCK_SYNCHOWNERS            10523100
    L  EVTSDL:    Begin of FORM SELECT_EVENT_TRIGGERED_JOBS
    L  EVTSDL:      Eventhistory > There are no active profiles of criteria type 'EVTHIS'
    L  EVTSDL:    End of FORM SELECT_EVENT_TRIGGERED_JOBS
    L  EVTSDL: End of FORM PROCESS_EVENT_TRIGGERED_JOBS
    L  TIMESDL: CLEANUP_MUTEX try to grasp for server:
    L  TIMESDL: arq01_ARQ_10
    L  TIMESDL: CLEANUP_MUTEX not grasped (is busy)

    A Fri Mar 13 11:56:35 2015
    A  WP has reached abap/heaplimit = 40000000 bytes

    A Fri Mar 13 11:56:39 2015
    A  SelMemClass: heap quota (DIA) exceeded 2000000000 2000030480

    A Fri Mar 13 11:56:40 2015
    A  TH VERBOSE LEVEL FULL
    A  ** RABAX: level LEV_RX_PXA_RELEASE_MTX entered.
    A  ** RABAX: level LEV_RX_PXA_RELEASE_MTX completed.
    A  ** RABAX: level LEV_RX_COVERAGE_ANALYSER entered.
    A  ** RABAX: level LEV_RX_COVERAGE_ANALYSER completed.
    A  ** RABAX: level LEV_RX_HOTSPOT_TRACE entered.
    A  ** RABAX: level LEV_RX_HOTSPOT_TRACE completed.
    A  ** RABAX: level LEV_RX_SAVE_SHMLOCKS entered.
    A  ** RABAX: level LEV_RX_SAVE_SHMLOCKS completed.
    A  ** RABAX: level LEV_RX_RESET_SHMLOCKS entered.
    A  ** RABAX: level LEV_RX_RESET_SHMLOCKS completed.
    A  ** RABAX: level LEV_RX_ROLLBACK entered.
    C  Call to DbSlRollback96 while DBIF already active in DbSlExeRead96
    B  ***LOG BZY=> unexpected return code 1 calling DbSlRollback [dbcon        3820]
    B  ***LOG BYJ=> database function ROLLBACK for connection R/3 failed [dbcon        3823]
    B  *** ERROR => DISTRIBUTED_TA_FAILED:
    [dbcon.c      2029]
    B  {root-id=0050569300301EE4B2AC40086FE743BF}_{conn-id=00000000000000000000000000000000}_0
    B  00: name=R/3, con_id=000000000, state=ACTIVE      , tx=NO , bc=NO , hc=NO , perm=YES, reco=NO , info=NO ,
    B      timeout=000, con_max=255, con_opt=255, occ=NO , prog=
    M  ***LOG R39=> ThIRollBack, db_rollback ( 016384) [thxxhead.c   14956]
    M  in_ThErrHandle: 1
    M  *** ERROR => ThIRollBack: db_rollback (step 4, th_errno 18, action 2, level 1) [thxxhead.c   11560]
    M  {root-id=0050569300301EE4B2AC40086FE743BF}_{conn-id=00000000000000000000000000000000}_0

    Hi Yuksel ,
    From the trace file it seems  it is a parallel processing Jobs . Has anything changed  ( In terms of number of parallel background work  process ) in this Job .
    If this relates to only one job  dont think this  increased memory could be because of the kernel patching .
    The only thing i could think of is the following ( 1713986 - Installation of kernel 721 (EXT) ) - The note is valid for 721 als
    5.6 Dynamic work processes (NetWeaver 7.00/7.01)
    The 720 and 721 kernel versions support the dynamic increase of the number of work processes at runtime. However, this function is not fully compatible with NW 7.00 and NW 7.01. To prevent errors from occurring, deactivate it by setting the following parameters:
    rdisp/wp_no_restricted = 0
    rdisp/configurable_wp_no = 0
    rdisp/dynamic_wp_check = FALSE
    rdisp/wp_max_no = Sum of:( rdisp/wp_no_dia + rdisp/wp_no_vb2 + rdisp/wp_no_btc + rdisp/wp_no_vb + rdisp/wp_no_spo + rdisp/wp_no_enq ).
    Mind that rdisp/wp_max_no has the default value DEFAULT, which will add two unwanted dynamic processes if not set the number of configured, classical wp types.
    Check the parameters and try again after a restart .
    Believe have seen in many projects  functional consultants complaining  the issue is after the patch upgrade . Does this fall in that category
    Thanks ,
    Manu

Maybe you are looking for

  • Recording from L

    Why in recording source greyed out on recorder and cannot be selected

  • I am unable to open Lightroom 5 catalogs due to "unexpected error"

    I cannot currently open Lightroom. Each time I try it tells me that the catalog could not open due to an "unexpected error". I get this error for every catalog and every backup. I can't even seem to create a new catalog successfully. Any help would b

  • Photo Stream not working under IOS 7 and Aperture 3.4

    Since updadting to iOS 7, no matter what I do, my iPod Touch (latest generation) does not work with Photo Streams that I shared via Aperture. Friends who are subscribed still see the streams but I do not. My device no longer accepts new invitations s

  • Trouble with connecting to iMessage

    My iMessage isn't working. I go to sign in under settings and it says it's not connected and please check me network connection. What do i do?

  • Passing multiple variable values through Start Pointer

    Hi, I have a company code variable in my BI query, at initial run of the VC model i want to exclude multiple  company codes through start pointer, how can i write exclude condition for multiple values through company code variable field value input i