Structure of DSMCC data carousel with modules repeated

Dear all,
Suppose that we have a dsmcc data carousel as following:
DSI -> DII_1, �, DII_n
DII_1 -> MOD_1, MOD_2, MOD_3, MOD_4, MOD_5
Suppose, its flow structure as following:
| DSI | DII_1 | MOD_1 | MOD_2 | MOD_3 | MOD_4 | MOD_5 | � |
Now, if I want the MOD_2 repeated 3 times:
+Does the structure of data carousel has to change?  If yes, how the structure will be changed?
+Or it is simply that the MOD_2 will be inserted more into flow such as:
| DSI | DII_1 | MOD_1 | MOD_2 | MOD_3 | MOD_4 | MOD_2 | MOD_5 | MOD_2 |� |
Thank you in advance
Tien

Thank you very much Steve,
I have one more question please.
Suppose I have a file system encoded in the OC look like as following:
<Dir1>
     <Dir2>
          file_1.png
          file_2.png
          �
          file_n.
Suppose the file_1.png is encoded in MOD_2, <DIR2> is encoded in MOD_3 and <DIR_1> is encoded in MOD_4.
Then when the file_1.png is required by application:
+ Is just only one MOD_2 needed to download ? or are all of three modules MOD_2, MOD_3, and MOD_4 needed to download?
+ or what will be happened?
Thanks,
Tien

Similar Messages

  • Who worked with ICS' Model 4896 GPIB? I can not count the data from the module. Can prompt as it to make. It is desirable with examples (data read-out from the module and data transmission between channels. It is in advance grateful.

    I can not count the data from the module. Can prompt as it to make. It is desirable with examples (data read-out from the module and data transmission between channels. It is in advance grateful.

    Hello. Most of the engineers in developer exchange are more familiar
    with NI products. Contacting ICS for technical support is a better
    course of action.

  • Generic Data Source with Function Module data mismatch in BI

    Hi All,
    I'm using Generic Data Source with Function Module, When I execute the Function Module (Which I have Created), I'm getting 16000 records and when run extractor(in RSA3) im getting different no.of records(infact they are more no.).
    when I run the InfoPackage in BI im Getting more no. of records than what i got executing the function module..
    and single record is divided into 2 records in BI side(not all the records), how can it be possible???
    is there anything Im missing to explain you my issue???
    if understood please help me out.
    Thanks n Regards,
    ravi.

    the datasource frame work starts the function module several times.
    1. the initialization
    2. the serval times, until you "raise no_more_data".
    check you coding: have you refreshed necessary internal tables.
    Sven

  • Generic Data Source with Function Module data mismatch

    Hi All,
    I'm using Generic Data Source with Function Module, When I execute the Function Module (Which I have Created), I'm getting 16000 records and when run extractor(in RSA3) im getting different no.of records(infact they are more no.).
    when I run the InfoPackage  in BI im Getting more no. of records than what i got executing the function module..
    and single record is divided into 2 records in BI side(not all the records), how can it be possible???
    is there anything Im missing to explain you my issue???
    if understood please help me out.
    Thanks n Regards,
    ravi.

    HI rkiranbi,
    1. FIrst you excute function module according to your paramers, you will get some records. then goto tcode RSA3 --> excute
    Provide your Data source name and under setting we have options like Data records/calls, Display extractor calls and selections --> fields .
    in that options you have to increase the values. and then you have to pass paramers in RSA3 according to your function module
    selections in SE37. Now you will get equal values in both functin module selection and RSA3 Selection. if it fail means  you need to
    check coding logic in function module. 
    2. if your  are getting wrong values in BI System then check with
                  1. compare with PSA data and data target data (here you need to check with characterstic as well as keyfigures)
                  if you find any mistake you need change the coding in function module according to client requirement.
                  2. compare data with RSA3 and bi report data or data target data.
                                 check it properly above steps, you will get solution.
    thanks and regards,
    malli

  • New Data Connection with incoming XSLT.  Should DataView show the structure?

    When I Create New Data Connection with an XML file and an incoming XSLT transformation, the Data View doesn't show the resulting structure..just the original XML file structure. This makes it hard to bind xml elements in the transformation to a PDF form. It the XSLT only applied at "runtime"? If so, how to map elements? Thanks.

    I would suggest to create a receive data connection(secondary) to get data from your checklist
    Use this data connection to connect to your checklist and get all the fields that are required.
    Create a button in your form and add rules to assign and submit data to the list, after user clicks the button
    Add a rule to set values to source list with fields from Receive Data connection
    Submit the data to the list
    Close the form
    Hope this helps!
    MCITP: SharePoint 2010 Administrator
    MCTS - MOSS 2007 Configuring, .NET 2.0
    | SharePoint Architect | Evangelist |
    http://www.sharepointdeveloper.in/
    http://ramakrishnaraja.blogspot.com/
    Yes!  This is fantastic, I'll try this.  Quick question, would it be possible to send the data to a different list rather than the source?  
    My reasoning is this:  The secondary data connection list is intended to be sort of a blank slate, where the actual project requirements are listed and can be modified or edited as needed.  I'd like to keep that as the constant starting point.
     So could I possibly have the form submit the actual data to a separate list to maintain that?

  • Moving LR5 catalog (Irdata & Ircat) to a new hard drive and photos. Lost all meta data - How do I move meta data along with catalog?

    I moved LR5 catalog (Irdata & Ircat) to a new hard drive and photos. Lost all meta data - How do I move meta data along with catalog?
    The meta data for each image is missing.
    I have over 2,000 images. I don't want to go back through each image and add meta data.
    Is there some way to move everything?

    No, do not re-import your images. I assume you can see the thumbnails in the library module, just cannot access the full images, right? If this is the case there should be an exclamation mark in the top right corner of every one of your pictures and you only have to tell LR where the images are now.
    Click the exclamation mark of one of the images and a dialog window should pop-up, telling you that LR cannot find the file, but with an option to locate it. Press "Locate" and navigate to the folder on your new HD where the file is. If in the new external HD you kept the same folder structure that you had on the internal disk, LR will be able to find all your images and re-link them to the database without further intervention.

  • Data insert through module pool programming

    hi
    I want to insert the data  into the data base through module pool programming.I am taking the fields from different tables, I need sample code ,please help me

    Hi Dhanunjay,
    REPORT zpe_str_le .
    TABLES : zpe_str , zprd_mis1 , mseg , t001l.
    *DATA : STR TYPE C VALUE '50'.
    data : text(100) VALUE 'DELETED STORAGE LOCATION NO '.
    SELECTION-SCREEN : BEGIN OF SCREEN 123 AS WINDOW TITLE TEXT-005.
    SELECT-OPTIONS : S_ZSLOC FOR ZPE_STR-ZSLOC,
    S_ZMACD FOR ZPE_STR-ZMACD,
    S_ZPGRP FOR ZPE_STR-ZPGRP.
    SELECTION-SCREEN : END OF SCREEN 123.
    DATA : flag(1) TYPE c,
    flag1 TYPE c ,
    flag3 TYPE c VALUE '1'.
    DATA : etab LIKE t001l OCCURS 0 WITH HEADER LINE.
    SELECT * FROM T001L INTO TABLE ETAB.
    DATA : ihead LIKE thead.
    DATA : prevtab LIKE tline OCCURS 0 WITH HEADER LINE.
    data : Jtab like TLINE occurs 0 with header line.
    DATA : jtab LIKE tline OCCURS 0 WITH HEADER LINE.
    DATA : itab LIKE zprd_mis1 OCCURS 0 WITH HEADER LINE.
    *SELECT * FROM zprd_mis1 INTO TABLE itab.
    DATA : BEGIN OF itab_sloc OCCURS 0,
    werks LIKE t001l-werks,
    lgort LIKE t001l-lgort,
    lgobe LIKE t001l-lgobe,
    END OF itab_sloc.
    *FLAG = 0.
    CALL SCREEN 100.
    MODULE user_command_0100 INPUT.
    CASE sy-ucomm.
    WHEN 'RET'.
    LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 100.
    *PERFORM PREVIEW.
    LOOP AT prevtab.
    WRITE : / prevtab.
    ENDLOOP.
    LOOP AT JTAB[] INTO ZPRD_MIS1.
    WRITE : Jtab-TDFORMAT.
    WRITE : Jtab-TDLINE .
    *********ZPRD_MIS1-MANDT = Jtab-TDLINE .
    *********ZPRD_MIS1-SLOC = Jtab-TDLINE .
    *********ZPRD_MIS1-MCODE = Jtab-TDLINE .
    *********ZPRD_MIS1-GCODE = Jtab-TDLINE .
    *********ZPRD_MIS1-DESCR = Jtab-TDLINE .
    *********INSERT ZPRD_MIS1.
    ENDLOOP.
    WRITE : JTAB-ZSLOC.
    *********CALL TRANSACTION 'SO10'.
    SET CURSOR 2 2.
    WHEN 'DET'.
    SELECT * FROM ZPRD_MIS1 INTO CORRESPONDING FIELDS OF TABLE ITAB.
    CALL SCREEN 123 STARTING AT 10 5.
    LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
    SKIP 2 .
    WRITE :/1(8) 'STR.LOC' ,10(15) 'MRP. CTLR',27(10) 'P.GRP' ,39(40) 'DESCRIPTION OF PRODUCT'.
    SELECT SLOC MCODE GCODE DESCR FROM zprd_mis1 INTO ZPRD_MIS1 WHERE SLOC IN S_ZSLOC AND
    MCODE IN S_ZMACD AND
    GCODE IN S_ZPGRP.
    WRITE :/1(8) zprd_mis1-SLOC ,10(15) zprd_mis1-MCODE ,27(10) zprd_mis1-GCODE ,39(40) zprd_mis1-DESCR .
    ENDSELECT.
    WHEN 'CLEAR'.
    flag = 4.
    IF zpe_str-zsloc NE ' '.
    CLEAR zpe_str.
    ELSE.
    MESSAGE 'ALREADY CLEARED' TYPE 'S'.
    ENDIF.
    WHEN 'EXIT'.
    LEAVE TO SCREEN 0.
    WHEN 'SAVE'.
    IF zpe_str-zdesc NE ' '.
    IF zpe_str-zsloc NE ' '.
    LOOP AT itab.
    READ TABLE itab WITH KEY sloc = zpe_str-zsloc .
    IF sy-subrc = 0 AND flag = 5.
    zprd_mis1-mandt = sy-mandt.
    zprd_mis1-sloc = zpe_str-zsloc .
    zprd_mis1-mcode = zpe_str-zmacd .
    zprd_mis1-gcode = zpe_str-zpgrp.
    zprd_mis1-descr = zpe_str-zdesc .
    MODIFY zprd_mis1.
    flag1 = 7.
    MESSAGE 'STORAGE LOCATION MODIFIED' TYPE 'S'.
    EXIT.
    ELSE.
    zprd_mis1-mandt = sy-mandt.
    zprd_mis1-sloc = zpe_str-zsloc .
    zprd_mis1-mcode = zpe_str-zmacd .
    zprd_mis1-gcode = zpe_str-zpgrp.
    zprd_mis1-descr = zpe_str-zdesc .
    INSERT zprd_mis1.
    APPEND itab.
    flag = 5.
    flag1 = 7.
    MESSAGE 'STORAGE LOCATION CREATED' TYPE 'S'.
    *MESSAGE 'DATA ALREADY SAVED' TYPE 'S'.
    EXIT.
    *ENDIF.
    ENDIF.
    ENDLOOP.
    ELSE.
    flag = 3.
    MESSAGE 'PLEASE ENTER THE STORAGE LOCATION' TYPE 'S'.
    ENDIF.
    ELSE.
    LOOP AT itab.
    READ TABLE itab WITH KEY sloc = zpe_str-zsloc .
    IF sy-subrc = 0.
    MESSAGE 'ALREADY SAVED' TYPE 'S'.
    ELSE.
    MESSAGE 'ENTRIES FOR OTHER FIELDS REQUIRED' TYPE 'S'.
    ENDIF.
    ENDLOOP.
    ENDIF.
    WHEN 'CHECK'.
    SELECT * FROM zprd_mis1 INTO TABLE itab.
    IF zpe_str-zsloc NE ' '.
    LOOP AT itab.
    READ TABLE itab WITH KEY sloc = zpe_str-zsloc .
    IF sy-subrc = 0.
    zpe_str-zmandt = itab-mandt.
    zpe_str-zsloc = itab-sloc.
    zpe_str-zmacd = itab-mcode.
    zpe_str-zpgrp = itab-gcode.
    zpe_str-zdesc = itab-descr.
    flag = 7.
    flag1 = 7.
    ELSE.
    MESSAGE 'NO SUCH STORAGE LOCATION AVAILABLE' TYPE 'S'.
    EXIT.
    ENDIF.
    ENDLOOP.
    ELSE.
    flag = 3.
    MESSAGE 'PLEASE ENTER THE STORAGE LOCATION' TYPE 'S'.
    EXIT.
    ENDIF.
    WHEN 'DELETE'.
    IF zpe_str-zsloc EQ ' '.
    flag = 3.
    MESSAGE 'NOSUCH LOCATION AVAILABLE' TYPE 'S'.
    ELSE.
    READ TABLE itab WITH KEY sloc = zpe_str-zsloc .
    IF sy-subrc = 0.
    zpe_str-zmandt = itab-mandt.
    zpe_str-zsloc = itab-sloc.
    zpe_str-zmacd = itab-mcode.
    zpe_str-zpgrp = itab-gcode.
    zpe_str-zdesc = itab-descr.
    IF zpe_str-zsloc NE ' '.
    CALL FUNCTION 'G_CHECK_PASSWORD'
    EXPORTING
    password = 'PLANT1'
    EXCEPTIONS
    not_authorized = 1
    canceled = 2
    OTHERS = 3.
    IF sy-subrc = 0.
    PERFORM PREVIEW.
    DELETE FROM zprd_mis1 WHERE SLOC = zpe_str-zSLOC.
    UPDATE zprd_mis1.
    APPEND itab.
    MESSAGE 'STORAGE LOCATION DELETED' TYPE 'S'.
    ELSEIF SY-SUBRC = 2.
    MESSAGE 'OPRATION CANCELLED' TYPE 'E'.
    ELSEIF SY-SUBRC = 3.
    MESSAGE 'UNAUTHORIZED' TYPE 'E'.
    ENDIF.
    ELSE.
    MESSAGE 'STORAGE LOCATION CONTAINS NO DATA' TYPE 'S'.
    ENDIF.
    ELSE.
    MESSAGE 'STORAGE LOCATION CONTAINS NO DATA' TYPE 'S'.
    ENDIF.
    ENDIF.
    WHEN 'CREATE'.
    FLAG3 = 12.
    IF zpe_str-zsloc EQ ' '.
    MESSAGE 'ENTER THE STORAGE LOCATION' TYPE 'S'.
    EXIT.
    ELSE.
    LOOP AT etab.
    READ TABLE etab WITH KEY lgort = zpe_str-zsloc .
    IF sy-subrc = 0.
    read table itab with key sloc = zpe_str-zsloc .
    if sy-subrc = 0.
    zpe_str-zmandt = itab-mandt.
    zpe_str-zsloc = itab-sloc.
    zpe_str-zmacd = itab-mcode.
    zpe_str-zpgrp = itab-gcode.
    zpe_str-zdesc = itab-descr.
    flag = 7.
    flag1 = 7.
    clear flag .
    clear flag1.
    message 'storage location alredy exist' type 'S'.
    ELSE.
    FLAG = 2.
    MESSAGE 'STORAGE LOCATION ENTIRES DOESNOT EXIST' TYPE 'S'.
    ENDIF.
    else.
    message 'no such storage location exist' type 'S'.
    endif.
    endloop.
    FLAG = 2.
    exit.
    endif.
    WHEN 'CHANGE'.
    SELECT * FROM zprd_mis1 INTO TABLE itab.
    IF zpe_str-zsloc NE ' '.
    LOOP AT itab.
    READ TABLE itab WITH KEY sloc = zpe_str-zsloc .
    IF sy-subrc = 0.
    flag = 5.
    flag1 = 6.
    zpe_str-zmandt = itab-mandt.
    zpe_str-zsloc = itab-sloc.
    zpe_str-zmacd = itab-mcode.
    zpe_str-zpgrp = itab-gcode.
    zpe_str-zdesc = itab-descr.
    ELSE.
    MESSAGE 'NO STORAGE LOCATION AVAILABLE' TYPE 'S'.
    ENDIF.
    ENDLOOP.
    ELSE.
    flag = 3.
    MESSAGE 'PLEASE ENTER THE STORAGE LOCATION' TYPE 'S'.
    ENDIF.
    ENDCASE.
    ENDMODULE. " USER_COMMAND_0100 INPUT
    *& Module STATUS_0100 OUTPUT
    text
    MODULE status_0100 OUTPUT.
    SET PF-STATUS 'AAA'.
    SET TITLEBAR 'aaa'.
    IF flag3 = '1'.
    CALL FUNCTION 'G_CHECK_PASSWORD'
    EXPORTING
    password = 'PLANT1'
    EXCEPTIONS
    not_authorized = 1
    canceled = 2
    OTHERS = 3.
    IF sy-subrc 0.
    MESSAGE 'un authorized' TYPE 'S'(001).
    LEAVE TO SCREEN 0.
    ELSEIF SY-SUBRC = 2.
    MESSAGE ' OPERATION CANCELLED' TYPE 'S'(001).
    LEAVE TO SCREEN 0.
    ELSEIF SY-SUBRC = 3.
    LEAVE TO SCREEN 0.
    MESSAGE 'RESTRICTED' TYPE 'S'(001).
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CLEAR flag3.
    ENDIF.
    SELECT * FROM zprd_mis1 INTO TABLE itab.
    LOOP AT SCREEN.
    IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.
    screen-input = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    IF flag = 5 AND flag1 EQ 6.
    LOOP AT SCREEN.
    IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.
    screen-input = 1.
    MODIFY SCREEN.
    ENDIF.
    IF screen-name = 'CREATE' OR screen-name = 'DELETE' OR screen-name = 'CHANGE' OR screen-name = 'CHECK'.
    screen-input = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    EXIT.
    ENDIF.
    IF flag = 2.
    LOOP AT SCREEN.
    IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.
    screen-input = 1.
    MODIFY SCREEN.
    ENDIF.
    IF screen-name = 'CREATE' OR screen-name = 'DELETE' OR screen-name = 'CHANGE' OR screen-name = 'CHECK'.
    screen-input = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    EXIT.
    ENDIF.
    IF flag3 = 12.
    LOOP AT SCREEN.
    IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.
    screen-input = 1.
    MODIFY SCREEN.
    ENDIF.
    IF screen-name = 'CREATE' OR screen-name = 'DELETE' OR screen-name = 'CHANGE' OR screen-name = 'RET' OR screen-name = 'CHECK'.
    screen-input = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    EXIT.
    CLEAR FLAG3.
    ENDIF.
    IF flag = 4.
    IF screen-name CP 'ZPE_*'.
    screen-input = 1.
    ENDIF.
    ENDIF.
    IF flag1 = 7 AND flag = 5.
    LOOP AT SCREEN.
    IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZSLOC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.
    screen-input = 0.
    MODIFY SCREEN.
    ENDIF.
    IF screen-name = 'CREATE' OR screen-name = 'DELETE' OR screen-name = 'CHECK' OR screen-name = 'SAVE'.
    screen-input = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    ENDIF.
    IF flag1 = 7 AND flag = 7.
    LOOP AT SCREEN.
    IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZSLOC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.
    screen-input = 0.
    MODIFY SCREEN.
    ENDIF.
    IF screen-name = 'CREATE' OR screen-name = 'CHECK' OR screen-name = 'SAVE'." OR screen-name = 'DELETE'.
    screen-input = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    ENDIF.
    IF flag1 = 4 AND flag = 3.
    LOOP AT SCREEN.
    IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZSLOC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.
    screen-input = 0.
    MODIFY SCREEN.
    ENDIF.
    IF screen-name = 'CREATE' OR screen-name = 'SAVE' OR screen-name = 'DELETE' OR screen-name = 'CHANGE' OR screen-name = 'CHECK'.
    screen-input = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    ENDIF.
    ENDMODULE. " STATUS_0100 OUTPUT
    DATA: BEGIN OF r1 OCCURS 1.
    INCLUDE STRUCTURE ddshretval.
    DATA: END OF r1.
    *& Module VALUE_SLOC INPUT
    text
    MODULE value_sloc INPUT.
    SELECT lgort werks lgobe FROM t001l INTO CORRESPONDING FIELDS OF TABLE itab_sloc.
    DELETE ADJACENT DUPLICATES FROM itab_sloc COMPARING lgort.
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
    retfield = 'LGORT'
    value_org = 'S'
    TABLES
    value_tab = itab_sloc
    return_tab = r1
    EXCEPTIONS
    parameter_error = 1
    no_values_found = 2
    OTHERS = 3.
    IF sy-subrc EQ 0.
    IF r1-fieldval IS NOT INITIAL.
    zpe_str-zsloc = r1-fieldval.
    ENDIF.
    ENDIF.
    EXIT.
    *ENDSELECT.
    ENDMODULE. " VALUE_SLOC INPUT
    FORM PREVIEW.
    *TABLES : ZPE_STR , ZPRD_MIS1 , MSEG.
    data : ihead like thead.
    DATA : prevtab like TLINE occurs 0 with header line.
    data : Jtab like TLINE occurs 0 with header line.
    *data : Jtab like thead occurs 0 with header line.
    *data : text(100).
    CALL FUNCTION 'READ_TEXT'
    EXPORTING
    CLIENT = SY-MANDT
    ID = 'ST'
    LANGUAGE = sy-langu
    NAME = 'ZSLDEL'
    OBJECT = 'TEXT'
    ARCHIVE_HANDLE = 0
    LOCAL_CAT = ' '
    IMPORTING
    HEADER =
    TABLES
    LINES = prevtab[]
    EXCEPTIONS
    ID = 1
    LANGUAGE = 2
    NAME = 3
    NOT_FOUND = 4
    OBJECT = 5
    REFERENCE_CHECK = 6
    WRONG_ACCESS_TO_ARCHIVE = 7
    OTHERS = 8
    IF SY-SUBRC 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    if not prevtab[] is initial.
    append lines of prevtab to jtab.
    endif.
    *IHEAD-TDFDATE = SY-DATUM.
    *IHEAD-TDFTIME = SY-UZEIT.
    ihead-TDOBJECT = 'TEXT'.
    ihead-TDNAME = 'ZSLDEL'.
    ihead-TDID = 'ST'.
    ihead-TDSPRAS = sy-langu.
    type-pools : slis.
    Jtab-TDFORMAT = ''.
    *Jtab-TDLINE = 'SLOCATION'.
    *append Jtab.
    *Jtab-TDFORMAT = ''.
    Jtab-TDFORMAT = '*'.
    Jtab-TDLINE = ZPE_STR-ZSLOC.
    append Jtab.
    Jtab-TDFORMAT = ''.
    *Jtab-TDLINE = 'DATE'.
    *append Jtab.
    Jtab-TDFORMAT = ''.
    *Jtab-TDLINE = SY-DATUM.
    *append Jtab.
    Jtab-TDFORMAT = ''.
    *Jtab-TDLINE = 'TIME'.
    *append Jtab.
    Jtab-TDFORMAT = ''.
    *Jtab-TDLINE = SY-UZEIT.
    *Jtab-TDFORMAT = ''.
    *append Jtab.
    CALL FUNCTION 'SAVE_TEXT'
    EXPORTING
    CLIENT = SY-MANDT
    HEADER = ihead
    INSERT = 'X'
    SAVEMODE_DIRECT = ' '
    OWNER_SPECIFIED = ' '
    LOCAL_CAT = ' '
    IMPORTING
    FUNCTION =
    NEWHEADER =
    TABLES
    LINES = Jtab
    EXCEPTIONS
    ID = 1
    LANGUAGE = 2
    NAME = 3
    OBJECT = 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.
    CALL FUNCTION 'COMMIT_TEXT'
    EXPORTING
    OBJECT = '*'
    NAME = '*'
    ID = '*'
    LANGUAGE = '*'
    SAVEMODE_DIRECT = ' '
    KEEP = ' '
    LOCAL_CAT = ' '
    IMPORTING
    COMMIT_COUNT =
    TABLES
    T_OBJECT =
    T_NAME =
    T_ID =
    T_LANGUAGE =
    ENDFORM.
    *&spwizard: declaration of tablecontrol 'TBLECTL' itself
    controls: TBLECTL type tableview using screen 0100.
    *&spwizard: lines of tablecontrol 'TBLECTL'
    data: g_TBLECTL_lines like sy-loopc.
    data: OK_CODE like sy-ucomm.
    *&spwizard: output module for tc 'TBLECTL'. do not change this line!
    *&spwizard: update lines for equivalent scrollbar
    module TBLECTL_change_tc_attr output.
    describe table ITAB lines TBLECTL-lines.
    endmodule.
    *&spwizard: output module for tc 'TBLECTL'. do not change this line!
    *&spwizard: get lines of tablecontrol
    module TBLECTL_get_lines output.
    g_TBLECTL_lines = sy-loopc.
    endmodule.
    *&spwizard: input module for tc 'TBLECTL'. do not change this line!
    *&spwizard: process user command
    module TBLECTL_user_command input.
    OK_CODE = sy-ucomm.
    perform user_ok_tc using 'TBLECTL'
    'ITAB'
    changing OK_CODE.
    sy-ucomm = OK_CODE.
    endmodule.
    INCLUDE TABLECONTROL_FORMS *
    *& Form USER_OK_TC *
    FORM USER_OK_TC USING P_TC_NAME TYPE DYNFNAM
    P_TABLE_NAME
    P_MARK_NAME
    CHANGING P_OK LIKE SY-UCOMM.
    &SPWIZARD: BEGIN OF LOCAL DATA----
    DATA: L_OK TYPE SY-UCOMM,
    L_OFFSET TYPE I.
    &SPWIZARD: END OF LOCAL DATA----
    *&SPWIZARD: Table control specific operations *
    *&SPWIZARD: evaluate TC name and operations *
    SEARCH P_OK FOR P_TC_NAME.
    IF SY-SUBRC 0.
    EXIT.
    ENDIF.
    L_OFFSET = STRLEN( P_TC_NAME ) + 1.
    L_OK = P_OK+L_OFFSET.
    *&SPWIZARD: execute general and TC specific operations *
    CASE L_OK.
    WHEN 'INSR'. "insert row
    PERFORM FCODE_INSERT_ROW USING P_TC_NAME
    P_TABLE_NAME.
    CLEAR P_OK.
    WHEN 'DELE'. "delete row
    PERFORM FCODE_DELETE_ROW USING P_TC_NAME
    P_TABLE_NAME
    P_MARK_NAME.
    CLEAR P_OK.
    WHEN 'P--' OR "top of list
    'P-' OR "previous page
    'P+' OR "next page
    'P++'. "bottom of list
    PERFORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME
    L_OK.
    CLEAR P_OK.
    WHEN 'L--'. "total left
    PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
    WHEN 'L-'. "column left
    PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.
    WHEN 'R+'. "column right
    PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.
    WHEN 'R++'. "total right
    PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.
    WHEN 'MARK'. "mark all filled lines
    PERFORM FCODE_TC_MARK_LINES USING P_TC_NAME
    P_TABLE_NAME
    P_MARK_NAME .
    CLEAR P_OK.
    WHEN 'DMRK'. "demark all filled lines
    PERFORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
    P_TABLE_NAME
    P_MARK_NAME .
    CLEAR P_OK.
    WHEN 'SASCEND' OR
    'SDESCEND'. "sort column
    PERFORM FCODE_SORT_TC USING P_TC_NAME
    l_ok.
    ENDCASE.
    ENDFORM. " USER_OK_TC
    *& Form FCODE_INSERT_ROW *
    FORM fcode_insert_row
    USING P_TC_NAME TYPE DYNFNAM
    P_TABLE_NAME .
    &SPWIZARD: BEGIN OF LOCAL DATA----
    DATA L_LINES_NAME LIKE FELD-NAME.
    DATA L_SELLINE LIKE SY-STEPL.
    DATA L_LASTLINE TYPE I.
    DATA L_LINE TYPE I.
    DATA L_TABLE_NAME LIKE FELD-NAME.
    FIELD-SYMBOLS <TC> TYPE CXTAB_CONTROL.
    FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
    FIELD-SYMBOLS <LINES> TYPE I.
    &SPWIZARD: END OF LOCAL DATA----
    ASSIGN (P_TC_NAME) TO <TC>.
    *&SPWIZARD: get the table, which belongs to the tc *
    CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
    ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
    *&SPWIZARD: get looplines of TableControl *
    CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_LINES_NAME.
    ASSIGN (L_LINES_NAME) TO <LINES>.
    *&SPWIZARD: get current line *
    GET CURSOR LINE L_SELLINE.
    if sy-subrc 0. " append line to table
    l_selline = <tc>-lines + 1.
    *&SPWIZARD: set top line *
    if l_selline > <lines>.
    <tc>-top_line = l_selline - <lines> + 1 .
    else.
    <tc>-top_line = 1.
    endif.
    else. " insert line into table
    l_selline = <tc>-top_line + l_selline - 1.
    l_lastline = <tc>-top_line + <lines> - 1.
    endif.
    *&SPWIZARD: set new cursor line *
    l_line = l_selline - <tc>-top_line + 1.
    *&SPWIZARD: insert initial line *
    INSERT INITIAL LINE INTO <TABLE> INDEX L_SELLINE.
    <TC>-LINES = <TC>-LINES + 1.
    *&SPWIZARD: set cursor *
    SET CURSOR LINE L_LINE.
    ENDFORM. " FCODE_INSERT_ROW
    *& Form FCODE_DELETE_ROW *
    FORM fcode_delete_row
    USING P_TC_NAME TYPE DYNFNAM
    P_TABLE_NAME
    P_MARK_NAME .
    &SPWIZARD: BEGIN OF LOCAL DATA----
    DATA L_TABLE_NAME LIKE FELD-NAME.
    FIELD-SYMBOLS <TC> TYPE cxtab_control.
    FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
    FIELD-SYMBOLS <WA>.
    FIELD-SYMBOLS <MARK_FIELD>.
    &SPWIZARD: END OF LOCAL DATA----
    ASSIGN (P_TC_NAME) TO <TC>.
    *&SPWIZARD: get the table, which belongs to the tc *
    CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
    ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
    *&SPWIZARD: delete marked lines *
    DESCRIBE TABLE <TABLE> LINES <TC>-LINES.
    LOOP AT <TABLE> ASSIGNING <WA>.
    *&SPWIZARD: access to the component 'FLAG' of the table header *
    ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
    IF <MARK_FIELD> = 'X'.
    DELETE <TABLE> INDEX SYST-TABIX.
    IF SY-SUBRC = 0.
    <TC>-LINES = <TC>-LINES - 1.
    ENDIF.
    ENDIF.
    ENDLOOP.
    ENDFORM. " FCODE_DELETE_ROW
    *& Form COMPUTE_SCROLLING_IN_TC
    text
    -->P_TC_NAME name of tablecontrol
    -->P_OK ok code
    FORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME
    P_OK.
    &SPWIZARD: BEGIN OF LOCAL DATA----
    DATA L_TC_NEW_TOP_LINE TYPE I.
    DATA L_TC_NAME LIKE FELD-NAME.
    DATA L_TC_LINES_NAME LIKE FELD-NAME.
    DATA L_TC_FIELD_NAME LIKE FELD-NAME.
    FIELD-SYMBOLS <TC> TYPE cxtab_control.
    FIELD-SYMBOLS <LINES> TYPE I.
    &SPWIZARD: END OF LOCAL DATA----
    ASSIGN (P_TC_NAME) TO <TC>.
    *&SPWIZARD: get looplines of TableControl *
    CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_TC_LINES_NAME.
    ASSIGN (L_TC_LINES_NAME) TO <LINES>.
    *&SPWIZARD: is no line filled? *
    IF <TC>-LINES = 0.
    *&SPWIZARD: yes, ... *
    L_TC_NEW_TOP_LINE = 1.
    ELSE.
    *&SPWIZARD: no, ... *
    CALL FUNCTION 'SCROLLING_IN_TABLE'
    EXPORTING
    ENTRY_ACT = <TC>-TOP_LINE
    ENTRY_FROM = 1
    ENTRY_TO = <TC>-LINES
    LAST_PAGE_FULL = 'X'
    LOOPS = <LINES>
    OK_CODE = P_OK
    OVERLAPPING = 'X'
    IMPORTING
    ENTRY_NEW = L_TC_NEW_TOP_LINE
    EXCEPTIONS
    NO_ENTRY_OR_PAGE_ACT = 01
    NO_ENTRY_TO = 02
    NO_OK_CODE_OR_PAGE_GO = 03
    OTHERS = 0.
    ENDIF.
    *&SPWIZARD: get actual tc and column *
    GET CURSOR FIELD L_TC_FIELD_NAME
    AREA L_TC_NAME.
    IF SYST-SUBRC = 0.
    IF L_TC_NAME = P_TC_NAME.
    *&SPWIZARD: et actual column *
    SET CURSOR FIELD L_TC_FIELD_NAME LINE 1.
    ENDIF.
    ENDIF.
    *&SPWIZARD: set the new top line *
    <TC>-TOP_LINE = L_TC_NEW_TOP_LINE.
    ENDFORM. " COMPUTE_SCROLLING_IN_TC
    *& Form FCODE_TC_MARK_LINES
    marks all TableControl lines
    -->P_TC_NAME name of tablecontrol
    FORM FCODE_TC_MARK_LINES USING P_TC_NAME
    P_TABLE_NAME
    P_MARK_NAME.
    &SPWIZARD: EGIN OF LOCAL DATA----
    DATA L_TABLE_NAME LIKE FELD-NAME.
    FIELD-SYMBOLS <TC> TYPE cxtab_control.
    FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
    FIELD-SYMBOLS <WA>.
    FIELD-SYMBOLS <MARK_FIELD>.
    &SPWIZARD: END OF LOCAL DATA----
    ASSIGN (P_TC_NAME) TO <TC>.
    *&SPWIZARD: get the table, which belongs to the tc *
    CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
    ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
    *&SPWIZARD: mark all filled lines *
    LOOP AT <TABLE> ASSIGNING <WA>.
    *&SPWIZARD: access to the component 'FLAG' of the table header *
    ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
    <MARK_FIELD> = 'X'.
    ENDLOOP.
    ENDFORM. "fcode_tc_mark_lines
    *& Form FCODE_TC_DEMARK_LINES
    demarks all TableControl lines
    -->P_TC_NAME name of tablecontrol
    FORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
    P_TABLE_NAME
    P_MARK_NAME .
    &SPWIZARD: BEGIN OF LOCAL DATA----
    DATA L_TABLE_NAME LIKE FELD-NAME.
    FIELD-SYMBOLS <TC> TYPE cxtab_control.
    FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
    FIELD-SYMBOLS <WA>.
    FIELD-SYMBOLS <MARK_FIELD>.
    &SPWIZARD: END OF LOCAL DATA----
    ASSIGN (P_TC_NAME) TO <TC>.
    *&SPWIZARD: get the table, which belongs to the tc *
    CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
    ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
    *&SPWIZARD: demark all filled lines *
    LOOP AT <TABLE> ASSIGNING <WA>.
    *&SPWIZARD: access to the component 'FLAG' of the table header *
    ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
    <MARK_FIELD> = SPACE.
    ENDLOOP.
    ENDFORM. "fcode_tc_mark_lines
    Source : https://forums.sdn.sap.com/click.jspa?searchID=15092700&messageID=5654151
    Have A Good Day
    Chaitanya.

  • Structural profile for HR conflicts with MRS

    Hi,
    We have ECC 6.0 and implemented mini-HR for mainly CATS use and to create the organisation for MRS (multi-resource scheduling). Now we are facing problems with managers who need to have a structural profiles to limit their access to HR information.
    A manager cannot execute transaction /MRSS/PLBOORGM - Planning Board for RP Node
    The other problem is that structural profiles (evaluation path O-S-P) seem to be interfaring with IW32 when user tries to change technical person (i.e. a partner) or sales order.
    CATS is classic, not CATS for Srvice providers which also brings problems with those users who have to accept hours or enter hours (CAT2) for other than their own subordinates; i.e. they are project managers.
    Any suggestion for structural profile corrections, evaluation path that should be used in addition to the "normal" O-S-P for the manager role?
    Help is highly appreciated.
    BR,
    Pia

    Hi,
    Firstly P_ORGINCON is used for context solutions where you want users to access specific infotypes for selected Objects in the Org structure and simultaneously perform other activities for some seperate set of Objects.
    P_ORGINCON won't understand the concept of exclusion.
    3) we assign to the manager a second structural profile in exclusion mode and a role with with a P_ORGINCON in order to exclude some infotypes.
    Why do you want to design such approach?
    Please remember when you assign PD profile to a position and check the exclusion Box, it means what all objects returned by that structural profile should be excluded from entering into T77UU and INDX table, when you run RHBAUS* programs.
    After reading through your Business requirement, I would only suggest you to drive this design through Function Modules and included those FMs in your structural.
    If required create multiple structural add them in separate nodes in P_ORGINCON in combination of Infotypes.
    In othe words, it is possibile to assign a structural profile to a user in exclusion mode and use this structural profile with a P_ORGINCON in order to exclude some inforypes ? -
    NO, assigning structural in exclusion mode will only exclude objects which are being pulled up by that structural and using the same with P_ORGINCON means, user will be able access set of Infotypes for all Objects in the Org Structure apart from the ones excluded because the structural assigned in exclusion mode.
    Hope this answers your question.
    Thanks,
    Deb

  • "Source not found" Error creating URL Data control with query parameters

    Hi,
    I have a restful service for which i want to create a URL data control. I am able to create the URL data control successfully when i am not passing any parameters in the Source field. But if i am specifying the parameters in the source field like this Department=##ParamName##, something weird is happening. After giving the param string in the Source field, it asks for default param value to test the url. It tests the url successfully. After that i select XML as the data format in which i am mentioning the xsd like this . "file:///C:/..../something.xsd" . And this is when i am getting the error. "Invalid Connection. The source is not found". I am giving exactly same path for xsd which i gave while creating URL data control without query parameters. Infact i was able to create the URL data control with query parameters successfully till afternoon. after that it started giving me this error all of a sudden. Infact as soon as i was able to create a URL data contol with query parameter successfully, i took a backup of the application before moving further. But even that backup is not working now.
    As far as i understand, i dont think there will be any change in xsd if query params are passed to a web service. Please correct me if i am wrong.
    Just dont know what could be the issue. Please help
    Thanks

    Hi,
    xsd is used for the URL service to know what the returned data structure is so it can create the ADF DC metadata
    Frank

  • Error message @ Win 7 Pro start up "There was aproblem starting C:\programdata\ofpviaowu.dat - The specified module could not be found."

    Error message @ Win 7 Pro start up "There was a problem starting C:\programdata\ofpviaowu.dat - The specified module could not be found."
    This error message appears every time I start (boot) my computer and windows starts (Firefox is not running at start up). Firefox 15.01 functions properly otherwise.
    This started after I installed the 15.0.1 patch.
    I uninstalled and reinstalled Firefox but the problem remains. Google search for "ofpviaowu.dat" came up with "2012-08-29 Firefox Release 15 Startup Crash Report" as the only listing.
    Is this a Firefox issue?

    hello QAMgr, i'm not aware of this file being a part of firefox & also find it slightly suspicious that there are no more google search hits. maybe this is malware related... could you do a full scan of your system with the security software already in place and/or a different tool like the [http://www.malwarebytes.org/products/malwarebytes_free free version of malwarebytes]?
    [[Troubleshoot Firefox issues caused by malware]]

  • XML Data Set with Spry Slides - Please Help

    Hi, I'm trying to combine XML Data Set with sliding tabs.
    I've created two keys responsible for sliding the tabs:
    <a id="previous" href="#"
    onclick="sp1.showPreviousPanel();">Previous</a>
    <a id="next" href="#"
    onclick="sp1.showNextPanel();">Next</a>
    Then XML Data Set is used to populate the tabs, but only a
    single tab remains visible, and a "Next/Previous" buttons are used
    to move to the next tab. And this is where the problem arises.
    The problem is that, every time I refreash the gallery or
    load it for the first time, I have to press TWICE the "Next" button
    to move to the next image. After that, its all fine, and slides
    well. It's only the FIRST time when loaded.
    Please help.
    Here's the full code:
    <div id="images_gal" >
    ///////////////////////////////////////// The menu - the
    culprit///////////////////////////////////////////
    <div id="menu_next">
    <a id="previous" href="#"
    onclick="sp1.showPreviousPanel();">Previous</a>
    <a id="next" href="#"
    onclick="sp1.showNextPanel();">Next</a>
    </div>
    //////////////////////////////////////// The Sliding Panels
    Gallery ////////////////////////////////////////////////////
    <div id="example2" class="SlidingPanels" tabindex="0" >
    <div class="SlidingPanelsContentGroup"
    spry:region="dsSpecials">
    <div spry:repeat="dsSpecials" id="{first}"
    class="SlidingPanelsContent{second}"><div class="top_gal"
    ></div><div class="main_gal"><img
    src="images/Galery/{third}" alt="Digital_Signage" width="600"
    height="304" />
    <p class="screen_gal"><a href="#"
    onclick="MM_openBrWindow('film1.html','Coloris','width=340,height=260,
    top=250, left=250')">CLICK TO VIEW</a></p>
    </div><div
    class="bottom_gal"></div></div>
    </div>
    </div>

    Anyone has any idea why I need a DOUBLE Click to start moving
    the sliding panels?
    I've just completed two tutorials by Don Booth.
    1/Building a Spry Sliding Panels widget
    2/Building a photo album with the Spry framework
    But what I try to COMBINE them - display the photos in
    sliding panels, I also need to DOUBLE click the "next" buton before
    it starts scrolling.
    Why is that Double Click needed? Help Please.
    Here's my code for the combined version:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
    Transitional//EN" "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="
    http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=utf-8" />
    <title>Untitled Document</title>
    <style type="text/css">
    a {
    position:relative;
    left:23px;
    top:127px;
    z-index:10000;
    color: #FF0000;
    </style>
    <script type="text/javascript"
    src="photo_album_samples/includes/xpath.js"></script>
    <script type="text/javascript"
    src="photo_album_samples/includes/sprydata.js"></script>
    <script type="text/javascript"
    src="Spry/SprySlidingPanels.js"></script>
    <link type="text/css" rel="stylesheet"
    href="Spry/SprySlidingPanels.css">
    </head>
    <body>
    <div >
    <a href="#" onclick="sp1.showPreviousPanel();">Previous
    Panel</a>
    <a href="#" onclick="sp1.showNextPanel();" >Next
    Panel</a>
    </div>
    <div id="panelwidget" class="SlidingPanels" >
    <div class="SlidingPanelsContentGroup"
    spry:region="dsGallery" >
    <div spry:repeat="dsGallery" class="SlidingPanelsContent"
    id="p1"><img
    src="photo_album_samples/thumbnails/{@thumbpath}"/></div>
    </div>
    </div>
    <script type="text/javascript">
    var dsGallery = new
    Spry.Data.XMLDataSet("photo_album_samples/photos.xml",
    "gallery/photos/photo");
    </script>
    <script type="text/javascript">
    var sp1 = new Spry.Widget.SlidingPanels("panelwidget");
    </script>
    </body>
    </html>

  • Debugging JMS adapter with Module Configuration

    Hi.
    I have a problem debugging my JMS adapter with module configuration.
    All I get from the Message Monitor is a status "System Error", and no error category or error message.
    I know there's an error in my Module configuration design, since it works fine without.
    My configuration looks like this:
    PROCESSING SEQUENCE:
    1     localejbs/AF_Modules/MessageTransformBean     Local Enterprise Bean     XML2Plain
    2     localejbs/SAP XI JMS Adapter/ConvertMessageToBinary     Local Enterprise Bean     convert_XI2Bin
    3     localejbs/SAP XI JMS Adapter/SendBinarytoXIJMSService     Local Enterprise Bean     exit
    MODULE CONFIGURATION:
    XML2Plain     Transform.Class     com.sap.aii.messaging.adapter.Conversion
    XML2Plain     Transform.ContentType     text/plain;charset=utf-8
    XML2Plain     xml.conversionType     StructXML2Plain
    XML2Plain     xml.addHeaderLine     0
    XML2Plain     xml.recordsetStructure     STARTRECORD,DATARECORD,SERVICEYDELSERRECORD,SLUTRECORD
    XML2Plain     xml.STARTRECORD.fieldFixedLengths     2,8,6,7,10,7,3,3
    XML2Plain     xml.DATARECORD.fieldFixedLengths     2,8,6,4,35,17,7,7,7,5,5,5,18,18,18,18,18,18,18,18,18,9
    XML2Plain     xml.SERVICEYDELSERRECORD.fieldFixedLengths     2,8,6,4,3,20,18,18,18
    XML2Plain     xml.SLUTRECORD.fieldFixedLengths     2,8,6,7,10,7
    XML2Plain     xml.STARTRECORD.fixedLengthTooShortHandling     Cut
    XML2Plain     xml.DATARECORD.fixedLengthTooShortHandling     Cut
    XML2Plain     xml.SERVICEYDELSERRECORD.fixedLengthTooShortHandling     Cut
    XML2Plain     xml.SLUTRECORD.fixedLengthTooShortHandling     Cut
    The structure of the message looks like this:
    <STARTRECORD> (occurence = 1)
    <DATARECORD> (occurence = 1..unbounded)
    --- <SERVICEYDELSERRECORD> (occurence = 0..unbounded)
    <SLUTRECORD> (occurence = 1)
    I've crosschecked every field, and it length and all looks like it should!
    The worst part is the one not getting the reason why it fails. Any way I can get this information?
    I've tried to look in the Adapter Framework log, but I have no clue where to look for anything usefull.
    Help
    Regards Peter

    Hello,
    Below is the module configuration in my JMS sender channel:
    Check Message          Local Enterprise Bean          key
    ConvertJMSMessageToBinary      Local Enterprise Bean      convert_JMS2Bin
    ConvertBinaryToXMBMessage     Local Enterprise Bean      convert_Bin2XI
    CallSapAdapter                Local Enterprise Bean          call_AF_MS
    CheckMessage is a custom module which does some check on the incoming message.
    Now what I want to know is at which position should I include the DynamicConfiguration Bean? Should it be included at position 1 or at position 2 or someother position?
    ~Thanks.

  • Exporting data clusters with type version

    Hi all,
    let's assume we are saving some ABAP data as a cluster to database using the IMPORT TO ... functionality, e.g.
    EXPORT VBAK FROM LS_VBAK VBAP FROM LT_VBAP  TO DATABASE INDX(QT) ID 'TEST'
    Some days later, the data can be imported
    IMPORT VBAK TO LS_VBAK VBAP TO LT_VBAP FROM DATABASE INDX(QT) ID 'TEST'.
    Some months or years later, however, the IMPORT may crash: Since it is the most normal thing in the world that ABAP types are extended, some new fields may have been added to the structures VBAP or VBAK in the meantime.
    The data are not lost, however: Using method CL_ABAP_EXPIMP_UTILITIES=>DBUF_IMPORT_CREATE_DATA, they can be recovered from an XSTRING. This will create data objects apt to the content of the buffer. But the component names are lost - they get auto-generated names like COMP00001, COMP00002 etc., replacing the original names MANDT, VBELN, etc.
    So a natural question is how to save the type info ( = metadata) for the extracted data together with the data themselves:
    EXPORT TYPES FROM LT_TYPES VBAK FROM LS_VBAK VBAP FROM LT_VBAP TO DATABASE INDX(QT) ID 'TEST'.
    The table LT_TYPES should contain the meta type info for all exported data. For structures, this could be a DDFIELDS-like table containing the component information. For tables, additionally the table kind, key uniqueness and key components should be saved.
    Actually, LT_TYPES should contain persistent versions of CL_ABAP_STRUCTDESCR, CL_ABAP_TABLEDESCR, etc. But it seems there is no serialization provided for the RTTI type info classes.
    (In an optimized version, the type info could be stored in a separate cluster, and being referenced by a version number only in the data cluster, for efficiency).
    In the import step, the LT_TYPES could be imported first, and then instances for these historical data types could be created as containers for the real data import (here, I am inventing a class zcl_abap_expimp_utilities):
    IMPORT TYPES TO LT_TYPES FROM DATABASE INDX(QT) ID 'TEST'.
    DATA(LO_TYPES) = ZCL_ABAP_EXPIMP_UITLITIES=>CREATE_TYPE_INFOS ( LT_TYPES ).
    assign lo_types->data_object('VBAK')->* to <LS_VBAK>.
    assign lo_types->data_object('VBAP')->* to <LT_VBAP>.
    IMPORT VBAK TO <LS_VBAK> VBAP TO <LT_VBAP> FROM DATABASE INDX(QT) ID 'TEST'.
    Now the data can be recovered with their historical types (i.e. the types they had when the export statement was performed) and processed further.
    For example, structures and table-lines could be mixed into the current versions using MOVE-CORRESPONDING, and so on.
    My question: Is there any support from the standard for this functionality: Exporting data clusters with type version?
    Regards,
    Rüdiger

    The IMPORT statement works fine if target internal table has all fields of source internal table, plus some additional fields at the end, something like append structure of vbak.
    Here is the snippet used.
    TYPES:
    BEGIN OF ty,
      a TYPE i,
    END OF ty,
    BEGIN OF ty2.
            INCLUDE TYPE ty.
    TYPES:
      b TYPE i,
    END OF ty2.
    DATA: lt1 TYPE TABLE OF ty,
          ls TYPE ty,
          lt2 TYPE TABLE OF ty2.
    ls-a = 2. APPEND ls TO lt1.
    ls-a = 4. APPEND ls TO lt1.
    EXPORT table = lt1 TO MEMORY ID 'ZTEST'.
    IMPORT table = lt2 FROM MEMORY ID 'ZTEST'.
    I guess IMPORT statement would behave fine if current VBAK has more fields than older VBAK.

  • Using JDBC Data Sources with ADFBC, NoInitialContextException

    Using JDBC Data Sources with ADF Business Components, NoInitialContextException
    I follow the instruction in the link below to create an ADF Swing application using datasource. I am using JDeveloper version 10.1.3.
    http://www.oracle.com/technology/products/jdev/howtos/10g/usingdatasources/using_datasources.html
    The ADF generated code looks like this:
    JUMetaObjectManager.setErrorHandler(new JUErrorHandlerDlg());
    JUMetaObjectManager mgr = JUMetaObjectManager.getJUMom();
    mgr.setJClientDefFactory(null);
    BindingContext ctx = new BindingContext();
    ctx.put(DataControlFactory.APP_PARAM_ENV_INFO, new JUEnvInfoProvider());
    ctx.setLocaleContext(new DefLocaleContext(null));
    HashMap map = new HashMap(4);
    map.put(DataControlFactory.APP_PARAMS_BINDING_CONTEXT, ctx);
    mgr.loadCpx("datasource.view.DataBindings.cpx" , map);
    final FormMain frame = new FormMain();
    frame.setBindingContext(ctx);
    I got this error when executing the last line: frame.setBindingContext(ctx);
    (oracle.jbo.common.ampool.ApplicationPoolException) JBO-30003: The application pool (datasource.datamodel.AppModuleDS) failed to checkout an application module due to the following exception:
    ----- LEVEL 1: DETAIL 0 -----
    (oracle.jbo.JboException) JBO-29000: Unexpected exception caught: oracle.jbo.DMLException, msg=JBO-27200: JNDI failure. Unable to lookup Data Source at context jdbc/xe_hrDS
    ----- LEVEL 2: DETAIL 0 -----
    (oracle.jbo.DMLException) JBO-27200: JNDI failure. Unable to lookup Data Source at context jdbc/xe_hrDS
    ----- LEVEL 3: DETAIL 0 -----
    (javax.naming.NoInitialContextException) Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
    If I configure the application module connection type as JDBC URL, everything works.
    If the connection type is JDBC Datasource, I got the above error.
    Can someone show me how to adjust the generated code by ADF to use datasource?

    ADF BC has a bug. With Data Source in Application Module, application module does not connect. Use JDBC Connection URL.
    Also refer
    ADF BC: JDBC URL vs JDBC DataSource

  • Structure of abap code in fi module

    Hi all
    I joined like fresher could you help me how to write the abap code
    structure of the abap code

    CHECK THIS
    I HOPE IT WILL HELP YOU.
    *& Report  ZDTK_FI_CRDB
    *& DESCRIPTION : CREDIT DEBIT NOTE FOR CUSTOMER OR VENDOR.
    REPORT  ZDTK_FI_CRDB NO STANDARD PAGE HEADING
                                LINE-COUNT 65(5)
                                LINE-SIZE 80
                                MESSAGE-ID ZTAR_FI
    *&       STRUCTURE DECLARATION
    TYPES : BEGIN OF TY_ADDR,
                    BUKRS TYPE BUKRS,          "COMPANY CODE
                    LIFNR TYPE LIFNR,          "VENDOR NO
                    KUNNR TYPE KUNNR,          "CUSTOMJER NO
                    NAME1 TYPE NAME1,          "NAME1
                    NAME2 TYPE NAME2,          "NAME2
                    ORT01 TYPE ORT01,          "CITY
                    ORT02 TYPE ORT02,
                    PSTLZ TYPE PSTLZ,          "POSTAL CODE
                    STRAS TYPE STRAS,          "STREET
                    ADRNR TYPE ADRNR,          "ADDRESS NO
                    TELF1 TYPE TELF1,          "TELEFHONE NO
                    TELF2 TYPE TELF2,          "TELEFHONE NO 2
                    TELFX TYPE TELFX,          "FAX
             END OF TY_ADDR,
          BEGIN OF TY_LFA1,
                   KUNNR TYPE KUNNR,          "CUSTOMJER NO
                   NAME1 TYPE NAME1,          "NAME1
                   NAME2 TYPE NAME2,          "NAME2
                   ORT01 TYPE ORT01,          "CITY
                   ORT02 TYPE ORT02,
                   PSTLZ TYPE PSTLZ,          "POSTAL CODE
                   STRAS TYPE STRAS,          "STREET
                   ADRNR TYPE ADRNR,          "ADDRESS NO
                   TELF1 TYPE TELF1,          "TELEFHONE NO
                   TELF2 TYPE TELF2,          "TELEFHONE NO 2
                   TELFX TYPE TELFX,          "FAX
            END OF TY_LFA1,
           BEGIN OF TY_DOCM,
                    GJAHR TYPE GJAHR,
                    BELNR TYPE BELNR_D,
                    BUDAT TYPE BUDAT,
                    BLDAT TYPE BLDAT,
                    BLART TYPE BLART,
                    BSCHL TYPE BSCHL,
                    SHKZG TYPE SHKZG,
                    XBLNR TYPE XBLNR,
                    DMBTR TYPE DMBTR,
                    SGTXT TYPE SGTXT,
                    REBZG TYPE REBZG,
                    REBZJ TYPE REBZJ,
                    KUNNR TYPE KUNNR,
                    LIFNR TYPE LIFNR,
             END OF TY_DOCM.
    *&       TABLE DECLARATION
    DATA : T_ADDR TYPE STANDARD TABLE OF TY_ADDR,
    *&       WORK AREA  DECLARATION
           W_ADDR TYPE TY_ADDR,
           W_DOCM TYPE TY_DOCM,
          W_LFA1 TYPE TY_LFA1,
    *&       GLOBLE VARIABLE DECLARATION
           G_KUNNR TYPE KUNNR,
           G_LIFNR TYPE LIFNR,
           DCAMT TYPE DMBTR.
    *&       INITIALIZATION
    INITIALIZATION.
    CLEAR :
    *REFRESH :
    *&       SELECTION SCREEN DECLARATION
    SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECTION-SCREEN SKIP 1.
    PARAMETERS : S_BUKRS TYPE BSID-BUKRS OBLIGATORY DEFAULT '1000'.
    PARAMETERS : S_BELNR TYPE BELNR_D OBLIGATORY DEFAULT '1600000070'.
    PARAMETERS : S_GJAHR TYPE GJAHR OBLIGATORY DEFAULT '2008'.
    PARAMETERS : ASON TYPE BUDAT OBLIGATORY DEFAULT SY-DATUM.
    PARAMETERS : S_KUNNR TYPE KUNNR MODIF ID GP1.
    PARAMETERS : S_LIFNR TYPE LIFNR MODIF ID GP2.
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN : END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS R1  RADIOBUTTON GROUP RAO DEFAULT 'X' USER-COMMAND hit.
    SELECTION-SCREEN COMMENT (50) TEXT-003 FOR FIELD R1.
    PARAMETERS R2  RADIOBUTTON GROUP RAO.
    SELECTION-SCREEN COMMENT (50) TEXT-004 FOR FIELD R2.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN END OF BLOCK B2.
    *SELECTION-SCREEN: BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-005.
    *SELECTION-SCREEN SKIP 1.
    *SELECTION-SCREEN BEGIN OF LINE.
    *PARAMETERS R3  RADIOBUTTON GROUP RAJ DEFAULT 'X' USER-COMMAND hit.
    *SELECTION-SCREEN COMMENT (50) TEXT-006 FOR FIELD R1.
    *PARAMETERS R4  RADIOBUTTON GROUP RAJ.
    *SELECTION-SCREEN COMMENT (50) TEXT-007 FOR FIELD R2.
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN SKIP 1.
    *SELECTION-SCREEN : END OF BLOCK B3.
    *&       AT SELECTION SCREEN
    AT SELECTION-SCREEN.
           PERFORM VALIDATE_SELECTION.
    *&       AT SELECTION SCREEN OUTPUT
    AT SELECTION-SCREEN OUTPUT.
           PERFORM SCREEN_OUTPUT.
    *&       START OF SELECTION
    START-OF-SELECTION.
    IF R1 = 'X'.
            PERFORM GET_DOCUMENT_L.
    ELSEIF R2 = 'X'.
            PERFORM GET_DOCUMENT_K.
    ENDIF.
    *&       END OF SELECTION
    END-OF-SELECTION.
    PERFORM DISPLAY.
    *&       TOP OF PAGE
    *TOP-OF-PAGE.
          PERFORM PAGE_HEADER.
    *&      Form  VALIDATE_SELECTION
          text
    form VALIDATE_SELECTION .
    DATA : L_BUKRS TYPE BSID-BUKRS.
    SELECT SINGLE BUKRS FROM KNB1
                        INTO L_BUKRS
                       WHERE BUKRS = S_BUKRS.
    *IF SY-SUBRC <> 0.
    *MESSAGE E001.
    *LEAVE LIST-PROCESSING.
    *ENDIF.
    DATA : L_KUNNR TYPE BSID-KUNNR.
    SELECT SINGLE KUNNR FROM BSID
                        INTO L_KUNNR
                       WHERE KUNNR = S_KUNNR.
    *IF SY-SUBRC <> 0.
    *MESSAGE E002.
    *LEAVE LIST-PROCESSING.
    *ENDIF.
    endform.                    " VALIDATE_SELECTION
    *&      Form  SCREEN_OUTPUT
          text
    form SCREEN_OUTPUT .
        IF R1 = 'X'.
          LOOP AT SCREEN.
            if screen-group1 = 'GP1'.
              SCREEN-active = '0'.
    *SCREEN-INTENSIFIED = '0'.
              MODIFY SCREEN.
            ENDIF.
          ENDLOOP.
        ELSE.
          LOOP AT SCREEN.
            IF SCREEN-group1 = 'GP2'.
              SCREEN-active = '0'.
    *SCREEN-INTENSIFIED = '1'.
              MODIFY SCREEN.
            ENDIF.
          ENDLOOP.
        ENDIF.
    endform.                    " SCREEN_OUTPUT
    *&      Form  GET_DOCUMENT_L
          text
    FORM GET_DOCUMENT_L .
    DATA : MESSG(60).
    SELECT SINGLE BUKRS
                  LIFNR
                  GJAHR
                  BELNR
                  BUDAT
                  BLDAT
                  BLART
                  BSCHL
                  SHKZG
                  DMBTR
                  SGTXT
                  REBZG
                  REBZJ FROM BSIK
                        INTO CORRESPONDING FIELDS OF W_DOCM
                       WHERE BUKRS = S_BUKRS AND
                             GJAHR = S_GJAHR AND
                             BELNR = S_BELNR.
    SELECT SINGLE DMBTR FROM BSIK INTO DCAMT
                       WHERE BELNR = W_DOCM-REBZG AND
                             GJAHR = W_DOCM-REBZJ.
    IF NOT W_DOCM IS INITIAL.
            PERFORM GET_LFA1.
    ELSE.
    SELECT SINGLE BUKRS
                  LIFNR
                  GJAHR
                  BELNR
                  BUDAT
                  BLDAT
                  BLART
                  BSCHL
                  SHKZG
                  DMBTR
                  SGTXT
                  REBZG
                  REBZJ FROM BSAK
                        INTO CORRESPONDING FIELDS OF W_DOCM
                       WHERE BUKRS = S_BUKRS AND
                             GJAHR = S_GJAHR AND
                             BELNR = S_BELNR.
    SELECT SINGLE DMBTR FROM BSAK INTO DCAMT
                       WHERE BELNR = W_DOCM-REBZG AND
                             GJAHR = W_DOCM-REBZJ.
          IF NOT W_DOCM IS INITIAL.
                  PERFORM GET_LFA1.
          ELSE.
          CONCATENATE 'THERE IS NO DOCUMENT NO' S_BELNR S_GJAHR 'FOR VENDOR' INTO  MESSG
                       SEPARATED BY SPACE.
          MESSAGE I011 WITH MESSG.
          LEAVE LIST-PROCESSING.
          ENDIF.
    ENDIF.
    ENDFORM.                    " GET_DOCUMENT_L
    *&      Form  GET_LFA1
          text
    FORM GET_LFA1 .
    SELECT SINGLE LIFNR
                  NAME1
                  NAME2
                  ORT01
                  ORT02
                  PSTLZ
                  STRAS
                  ADRNR
                  TELF1
                  TELF2
                  TELFX FROM LFA1 INTO CORRESPONDING FIELDS OF W_ADDR
                          WHERE LIFNR = W_DOCM-LIFNR.
    ENDFORM.                    " GET_LFA1
    *&      Form  GET_DOCUMENT_K
          text
    FORM GET_DOCUMENT_K .
    DATA : MESSG(60).
    SELECT SINGLE BUKRS
                  KUNNR
                 LIFNR
                  GJAHR
                  BELNR
                  BUDAT
                  BLDAT
                  BLART
                  BSCHL
                  SHKZG
                  DMBTR
                  SGTXT
                  REBZG
                  REBZJ FROM BSID
                        INTO CORRESPONDING FIELDS OF W_DOCM
                       WHERE  BUKRS = S_BUKRS AND
                              GJAHR = S_GJAHR AND
                              BELNR = S_BELNR.
    SELECT SINGLE DMBTR FROM BSID INTO DCAMT
                       WHERE BELNR = W_DOCM-REBZG AND
                             GJAHR = W_DOCM-REBZJ.
    IF NOT W_DOCM IS INITIAL.
            PERFORM GET_KNA1.
    ELSE.
    SELECT SINGLE BUKRS
                  KUNNR
                 LIFNR
                  GJAHR
                  BELNR
                  BUDAT
                  BLDAT
                  BLART
                  BSCHL
                  SHKZG
                  DMBTR
                  SGTXT
                  REBZG
                  REBZJ FROM BSAD
                        INTO CORRESPONDING FIELDS OF W_DOCM
                       WHERE  BUKRS = S_BUKRS AND
                              GJAHR = S_GJAHR AND
                              BELNR = S_BELNR.
    SELECT SINGLE DMBTR FROM BSAD INTO DCAMT
                       WHERE BELNR = W_DOCM-REBZG AND
                             GJAHR = W_DOCM-REBZJ.
          IF NOT W_DOCM IS INITIAL.
                  PERFORM GET_KNA1.
          ELSE.
          CONCATENATE 'THERE IS NO DOCUMENT NO' S_BELNR S_GJAHR 'FOR CUSTOMER' INTO  MESSG
                       SEPARATED BY SPACE.
          MESSAGE I011 WITH MESSG.
          LEAVE LIST-PROCESSING.
          ENDIF.
    ENDIF.
    ENDFORM.                    " GET_DOCUMENT_K
    *&      Form  GET_KNA1
          text
    FORM GET_KNA1 .
    SELECT SINGLE KUNNR
                  NAME1
                  NAME2
                  ORT01
                  ORT02
                  PSTLZ
                  STRAS
                  ADRNR
                  TELF1
                  TELF2
                  TELFX FROM KNA1 INTO CORRESPONDING FIELDS OF W_ADDR
                          WHERE KUNNR = W_DOCM-KUNNR.
    ENDFORM.                    " GET_KNA1
    *&      Form  DISPLAY
          text
    FORM DISPLAY .
    LONG TEXT *************************
    *DATA : BEGIN OF inline OCCURS 0,
    *END OF inline.
    *TYPES: BEGIN OF TY_LONGT,
                   tdformat TYPE tdformat,
                   tdline TYPE tdline,
          END OF TY_LONGT.
    *DATA : TLONGT TYPE STANDARD TABLE OF TY_LONGT,
          WLONGT TYPE TY_LONGT.
    DATA: BEGIN OF DTEXT OCCURS 50.
    *DATA: MATNR LIKE PBIM-MATNR.
    INCLUDE STRUCTURE TLINE.
    DATA: END OF DTEXT.
    DATA: BEGIN OF HTEXT.
    INCLUDE STRUCTURE THEAD.
    DATA: END OF HTEXT.
    DATA: BEGIN OF LTEXT OCCURS 50.
    INCLUDE STRUCTURE TLINE.
    DATA: END OF LTEXT.
    DATA: TNAME LIKE THEAD-TDNAME.
    CONCATENATE S_BUKRS W_DOCM-BELNR S_GJAHR '002' INTO  TNAME.
    *SEPARATED BY SPACE.
    DATA : W_STXL TYPE STXL.
    SELECT SINGLE * FROM STXL INTO W_STXL
                             WHERE TDNAME = TNAME.
    IF NOT W_STXL IS INITIAL.
    *SELECT * FROM PBIM WHERE WERKS IN S_WERKS.
    *MOVE PBIM-BDZEI TO TNAME.
    CALL FUNCTION 'READ_TEXT'
      EXPORTING
        CLIENT                        = SY-MANDT
        ID                            = W_STXL-TDID
        LANGUAGE                      = W_STXL-TDSPRAS
        NAME                          = TNAME
        OBJECT                        = W_STXL-TDOBJECT
      ARCHIVE_HANDLE                = 0
      LOCAL_CAT                     = ' '
    IMPORTING
        HEADER                        = HTEXT
      TABLES
        LINES                         = LTEXT
    EXCEPTIONS
      ID                            = 1
      LANGUAGE                      = 2
      NAME                          = 3
      NOT_FOUND                     = 4
      OBJECT                        = 5
      REFERENCE_CHECK               = 6
      WRONG_ACCESS_TO_ARCHIVE       = 7
      OTHERS                        = 8
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT LTEXT.
    IF LTEXT-TDLINE NE ''.
    MOVE LTEXT-TDLINE TO DTEXT-TDLINE.
    APPEND DTEXT.
    ENDIF.
    ENDLOOP.
    ENDIF.
    LONG TEXT *************************
    CUSTOMER / VENDOR NO *************************
    DATA : CUVE(10).
    IF R1 = 'X'.
    CUVE = W_ADDR-LIFNR.
    ELSEIF R2 = 'X'.
    CUVE = W_ADDR-KUNNR.
    ENDIF.
    CUSTOMER / VENDOR NO *************************
    CR / DR DATA *************************
    IF DCAMT IS INITIAL.
    SELECT SINGLE DMBTR FROM BSIS INTO DCAMT
                       WHERE BELNR = W_DOCM-REBZG AND
                             GJAHR = W_DOCM-REBZJ .
                          ( KOART = 'D' OR KOART = 'K' ).
    ENDIF.
    CR / DR DATA *************************
    DATA: CNAME TYPE BUTXT.
    SELECT SINGLE BUTXT FROM T001 INTO CNAME
                       WHERE BUKRS = S_BUKRS.
    DATA : NAME(60),
           STREET(60),
           TELFX(60).
    CONCATENATE W_ADDR-NAME1 W_ADDR-NAME2 INTO  NAME
    SEPARATED BY SPACE.
    CONCATENATE W_ADDR-ORT01 W_ADDR-ORT02 'POSTAL CODE :' W_ADDR-PSTLZ INTO  STREET
    SEPARATED BY SPACE.
    CONCATENATE 'Tel No.:' W_ADDR-TELF1 W_ADDR-TELF2 'FAX :' W_ADDR-TELFX INTO  TELFX
    SEPARATED BY SPACE.
    DATA : CRDB(20),
           CRDBA(16),
           BALC TYPE DMBTR.
    IF W_DOCM-SHKZG = 'S'.
    CRDB = 'Debit Note No. :'.
    CRDBA = 'DEBIT'.
    BALC = DCAMT + W_DOCM-DMBTR.
    ELSEIF W_DOCM-SHKZG = 'H'.
    CRDB = 'Credit Note No. :'.
    CRDBA = 'CREDIT'.
    BALC = DCAMT - W_DOCM-DMBTR.
    ENDIF.
    SKIP 5.
    *FORMAT INVERSE.
                ULINE 03(77).
    WRITE : 03 SY-VLINE, 80 '|',
            /03 SY-VLINE, NAME, 54 'Party No.:' COLOR 7, CUVE COLOR 7, 80 '|',
            /03 SY-VLINE, W_ADDR-STRAS, 80 '|',
            /03 SY-VLINE, STREET, 80 '|',
            /03 SY-VLINE, TELFX, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 05 CNAME COLOR 2,  80 '|',
            /03 SY-VLINE, 36 CRDB RIGHT-JUSTIFIED, 59 W_DOCM-BELNR, 71 W_DOCM-GJAHR, 80 '|',
            /03 SY-VLINE, 58 'DATE :', W_DOCM-BUDAT, 80 '|',
            /03 SY-VLINE, 80 '|'. ULINE 03(77).
    WRITE : /03 SY-VLINE, 80 '|'.
    IF NOT DTEXT IS INITIAL.
    LOOP AT DTEXT.
    WRITE : /03 SY-VLINE, 05 DTEXT-TDLINE COLOR 1, 80 '|'.
    ENDLOOP.
    ELSEIF W_DOCM-SGTXT NE ''.
    WRITE : /03 SY-VLINE, 05 W_DOCM-SGTXT COLOR 1, 80 '|'.
    ELSE.
    WRITE : /03 SY-VLINE, 80 '|'.
    ENDIF.
    WRITE : /03 SY-VLINE, 80 '|',
    *WRITE : /03 SY-VLINE, TNAME, 80 '|',
           /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 08 'WORKING OF INTEREST CALCULATION AS ON                                   ' COLOR 4,
             47 ASON COLOR 4, '  [ 360 DAYS BASIS ]' COLOR 4, 80 '|',
            /03 SY-VLINE, 80 '|'. ULINE 03(77).
    WRITE : /03 SY-VLINE, 11 'DATE', 23 'INVOICE', 41 CRDBA, 55 'BALANCE', 64 'DAYS', 70 'INTEREST', 80 '|',
            /03 SY-VLINE, 23 ' AMOUNT', 41 'AMOUNT', 55' AMOUNT', 70 ' @ 8.00% ', 80 '|',
            /03 SY-VLINE, 80 '|'. ULINE 03(77).
    WRITE : /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 06 W_DOCM-BUDAT, 15 DCAMT, 32 W_DOCM-DMBTR, 47 BALC, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|'. ULINE 03(77).
    WRITE : /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 10 'PREPARED BY', 35 'ACCOUNTANT', 60 'MANAGER', 80 '|',
            /03 SY-VLINE, 80 '|',
            /03 SY-VLINE, 80 '|'. ULINE 03(77).
    ENDFORM.                    " DISPLAY

Maybe you are looking for

  • Session: Waiting and Working Chart

    I am using OEM 10g (Grid control) to monitor my database. But I don know what does the Y axis on the chart (Session: Waiting and Working) mean ? Thanks for your help. Note: Click Home page -> Database -> Performance -> Sessions: Waiting and Working.

  • How to share catalog between two users on one iMac?

    Using Photoshop elements 11: I built op my catalog, creating events, tagging people etc. Now I would like my girlfriend to also use this catalog. (I can build up a new catalog but then I lose all the events, tags etc). I put the pictures and catalog

  • Why wont my ipod update past 4.2

    I'm hoping somebody can help. I jail broke my ipod a while back and now i want to update it, i tried looking for a new update but itunes keeps telling me that the ipod is already at the newest update, even though the newest is 5. something i am stuck

  • How can i reformat my iphone? its appears that i need to connect it to itunes but my laptop can't even recognize my iphone.

    hello guys, i badly need your help. last night i was trying to udate for a new software on ios but i failed to finish updating then after a few minutes i tried updating it again but it did'nt turned out well. what appears on my iphone is that I shoul

  • Create number range and assign new product id

    hi, can anyone tell me the steps to create the number range and assign it to the product id.. and replace existing product id to the new one through program or.. is there any standard program is available to change the product id thanks dinesh