ScreenPainter Properties in ABAP code

Hi all that's my first post here & i have a "Big" question can we use a screen painter element Properties in an ABAP code
Exemple:
in a input/output Field i want to change the text color after a some conditions
Help please
Regards.
MEHDI

Hello,
There would some functionality that can be attained by coding in ABAP. Say for instance you want the text in an input box to be changed in color upon clicking a puchbutton.
Say TEXT is the name of the input box and OK is the function code of the button, then if you write the code similar to the following  in the PBO of the screen, the color change can be attained
if sy-ucomm = 'OK'.
  loop at screen.
    if screen-name = 'TEXT'.
      screen-intensified = '1'.
      modify screen.
    endif.
  endloop.
endif.
Similarly using screen-invisible, screen-input etc can be used to hide or disable the input box at runtime.
Regards,
Sachin

Similar Messages

  • Template and ABAP code

    Hi ppl,
    I am a bit confused.If i have to make some field to only 'display'(so that the user has no choice to edit),how can i do it?
    -Who provides these templates??These templates that we publish are written in ABAP,right?
    -Can we create our own templates and publish??
    **When they say,change the template or change the ABAP code..what does it mean?Because to check the templates we goto SE80 and to change the code/add a field/edit a field--we go to SE11.Please let me know the link between SE11 and SE80 or the difference.
    Many Thanks
    Sam

    Sam,
    Before changing a template please go through following,it may resolve your issue -
    In this BAdI you can change the screen variant that controls the display of the item overviews and search results. As default, the following screen variants are called up:
    · Item data overview in the invoice without purchase order reference: Screen variant BBP_IV_NON_PO
    Method GET_SCREENVARIANT_INV
    · Item data overview in the invoice with purchase order reference: Screen variant BBP_IV
    Method GET_SCREENVARIANT_INV
    · Item data overview in the confirmation: Screen variant BBP_CF
    Method GET_SCREENVARIANT_CONF
    · Item data overview in the confirmation for time recording: Screen variant BBP_CF_TIMEREC
    Method GET_SCREENVARIANT_CONF
    · Item data overview in the purchase order: Screen variant BBP_PO
    Method GET_SCREENVARIANT_PO
    · Item overview for contracts: Screen variant BBP_CTR_ITEMLIST
    Method GET_SCREENVARIANT_CTR
    · Item overview for contract selection: Screen variant BBP_CTR_ITEM_SELLIST
    Method GET_SCREENVARIANT_CTR
    · Search results for creating an invoice and/or confirmation: Screen variant BBP_SEARCH_PO
    Method GET_SCREENVARIANT_SEARCH
    · Search results for creating a purchase order: Screen variant BBP_SEARCH_SC
    Method GET_SCREENVARIANT_SEARCH
    · Search results for displaying/changing an invoice: Screen variant BBP_CHANGE_IV
    Method GET_SCREENVARIANT_SEARCH
    · Search results for displaying/changing a confirmation: Screen variant BBP_CHANGE_CF
    Method GET_SCREENVARIANT_SEARCH
    · Item overview for creating/displaying/processing/status of a shopping cart: Screen variant BBP_SC
    Method GET_SCREENVARIANT_SC
    · Worklist for Sourcing: Screen variant BBP_SOCO_WL
    Method GET_SCREENVARIANT_SOCO
    · Work area in Sourcing: Screen variant BBP_SOCO_GA
    Method GET_SCREENVARIANT_SOCO
    Activities
    If you wish to hide or show fields, proceed as follows: 
    1. Determine the screen variant, for example, BBP_IV, using the list above.
    2. Copy this screen variant, for example, in ZZ_BBP_IV_1, in Transaction SHD0.
    3. Change the new screen variant as required. Note that you can only change the display properties for fields of table controls. You can switch the display on and off (column Invisible in Transaction SHD0). You can recognize the fields of a table control because they have a 1 on the right side of the first column. In addition, the heading for this area contains (Table CTRL.
    4. Implement the appropriate method (see the list above). Fill the export parameter EV_SCVARIANT with the new screen variant.
    You can create multiple screen variants for a screen and then select these in the BAdI depending on the user or on other criteria.
    Thanks and Warm Regards.
    Pras

  • WebDynpro Abap code to read IView Name

    Hi Friends,
    Could you please give me Webdynpro abap code to read the name of the Iview.
    Regards,
    Lakshmi Prasad.

    Hello Lakshmi,
    I dont think this is possible. If you want to differentiate from which iView your web dynpro application is launched, then you can pass some constant as Application Parameter in the iView. and in the web dynpro application you can read this parameter and perform your required logic.
    For example suppose say your web dynpro application is hosted in iView1 and iView2. In both the iview properties, pass a parameter (say IVIEWNAMe) with values 'iView1' and iView2 respectively.
    then in the Webdynpro -> Window Controllers' -> default event handler method, you read the parameter IVIEWNAME and based on the value you can peform your logic.
    BR, Saravanan

  • BPC Master Data Deletion through ABAP code

    Hi All,
    I have a requirement of deleting the orphan nodes for one of the dimension in BPC using ABAP code.
    Please let me know any standard program or classes for deleting the master data from dimension.
    Regards
    Pratibha Biradar

    Hi Pratibha,
    Here is the code to add master data, you can change the flag to 'D' to delete, i have not checked it for delete, it is working for adding.
    DATA: ls_message TYPE uj0_s_message,
    lt_messages TYPE uj0_t_message,
    l_success TYPE uj_flg,
    l_appset_id TYPE uj_appset_id,
    l_dimension_id TYPE uj_dim_name,
    lo_member_mgr TYPE REF TO if_uja_member_manager,
    lo_dimension TYPE REF TO if_uja_dimension_manager,
    lo_master_data_store TYPE REF TO if_ujam_master_data_store,
    lo_context TYPE REF TO if_uj_context,
    ls_dimension TYPE uja_s_dimension,
    lt_errors TYPE uja_t_members_error,
    lr_members TYPE REF TO data,
    lr_data TYPE REF TO data.
    FIELD-SYMBOLS:
    <lt_member_data> TYPE STANDARD TABLE,
    <ls_member_data> TYPE any,
    <lv_field> TYPE any.
    TRY.
        lo_context = cl_uj_context=>get_cur_context( ).
        cl_uj_context=>set_cur_context(
        i_appset_id = l_appset_id
        i_module_name = lo_context->d_calling_module
        is_user = lo_context->ds_user
        lo_dimension = cl_uja_bpc_admin_factory=>get_dimension_manager(
        i_appset_id = l_appset_id
        i_dimension_id = l_dimension_id
        lo_dimension->get(
        EXPORTING
        if_with_hier_maxlevel = abap_false
        IMPORTING
        es_dimension = ls_dimension
        CREATE OBJECT lo_master_data_store TYPE cl_ujam_master_data_store.
    * creating masterdata table
        lr_members = lo_master_data_store->get_table_buffer( ls_dimension ).
        ASSIGN lr_members->* TO <lt_member_data>.
    * Add members to <LT_MEMBER_DATA>, these are the member that will be saved.
        CREATE DATA lr_data LIKE LINE OF <lt_member_data>.
        ASSIGN lr_data->* TO <ls_member_data>.
    * Fill each field, such as ID, and EVDESCRIPTION, update other fields here as well as
    * any properties that need to be updated.
        ASSIGN COMPONENT 'ID' OF STRUCTURE <ls_member_data> TO <lv_field>.
        IF sy-subrc = 0.
          <lv_field> = 'ProductD'.
        ENDIF.
        ASSIGN COMPONENT 'MBR_NAME' OF STRUCTURE <ls_member_data> TO <lv_field>.
        IF sy-subrc = 0.
          <lv_field> = 'ProductD'.
        ENDIF.
        ASSIGN COMPONENT 'EVDESCRIPTION' OF STRUCTURE <ls_member_data> TO <lv_field>.
        IF sy-subrc = 0.
          <lv_field> = 'Product D Update'.
        ENDIF.
        ASSIGN COMPONENT 'PARENTH1' OF STRUCTURE <ls_member_data> TO <lv_field>.
        IF sy-subrc = 0.
          <lv_field> = 'TotalProduct'.
        ENDIF.
        ASSIGN COMPONENT 'OBJVERS' OF STRUCTURE <ls_member_data> TO <lv_field>.
        IF sy-subrc = 0.
          <lv_field> = 'A'. "Version flag, should be "A" for Active
        ENDIF.
        ASSIGN COMPONENT 'ROWFLAG' OF STRUCTURE <ls_member_data> TO <lv_field>.
        IF sy-subrc = 0.
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Here you can change it to 'D' for Deleting """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
          <lv_field> = 'I'. " This is an action flag, I=Insert, M=Modify """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
        ENDIF.
        APPEND <ls_member_data> TO <lt_member_data>. " Add to the table.
    * Create member manager
        lo_member_mgr = cl_uja_bpc_admin_factory=>get_member_manager(
        i_appset_id = l_appset_id
        i_dimension_id = l_dimension_id ).
    * Save the members UNCOMMENT ONLY when you want to write the data!!!!!
    * lo_member_mgr->save(
    * EXPORTING
    * ir_members = lr_members " List of members to save
    * IMPORTING
    * et_errors = lt_errors
    * NOW PROCESS THE DIMENSION
        DATA: ls_dimensions TYPE uja_s_dim_name,
        lt_dimensions TYPE uja_t_dim_name.
        CLEAR ls_dimensions. REFRESH lt_dimensions.
        ls_dimensions-dimension = l_dimension_id. " Add dimensions to the list
        APPEND ls_dimensions TO lt_dimensions.
        lo_member_mgr->process(
        EXPORTING
        it_dim_list = lt_dimensions
        if_set_offline = abap_false
        if_validate = abap_true
        IMPORTING
        ef_success = l_success
        et_message_lines = lt_messages ).
      CATCH cx_uj_no_auth .
    ENDTRY.
    hope this will help,
    thanks,
    Rishi

  • Creating an xml file from abap code

    Hello All,
    Please let me know which FM do I need to execute in order to create an XML file from my ABAP code ?
    Thanks in advance,
    Paul.

    This has been discussed before
    XML files from ABAP programs

  • UNIX command in ABAP code

    Hi All,
    I need to use unix command (MOVE) in ABAP code for transfering a file from one directory to another directory.
    Can any one help with how to used unix commands in ABAP?
    Thanks in advance.
    Regards,
    Hemendra

    The recommended approach always used to be to use transaction SM69 to define a "soft" command name to the operating system command so that it could be configured to work across Windows, Unix etc.  For example:
    Command name       OS         Type             OS command                                 Parameters for operating system command 
    Z_FILE_MOVE        SunOS      Customer    mv                                                 ? ?   
    You can then call function module SXPG_COMMAND_EXECUTE (quite well documented) to actually perform the command passing in the appropriate number of parameters.
    Jonathan

  • Needs sample ABAP code for field routine

    Dear Expert,
    There is a field "Pay Scale Group" in my DSO which stores the data in the format
    AA1/B1/CCC2/DD2/EEE1, A1/BB2/CC2/DDD3/EE2 etc. These data has to be transferred to
    InfoCube where "pay Scale Group" in the InfoCube will store the data like EEE1,EE2 etc.
    I need to write a field routine on the transformation between DSO and Cube.
    Can any one please help me with the sample ABAP code for this scenario.
    Some more examples for better understanding of the requirement:-
    Data in DSO(Source)            Data in Cube(Target)
    ===================            ===================
    AA1/B1/CCC2/DD2/EEE1            EEE1
    AAA1/BB2/CC1/DDD3/EE2           EE2
    A2/BBB2/CC2/DDD3/EEE5           EEE5
    AA2/BB1/C1/DDD3/EE3             EE3
    A3/B1/CC2/DDD1/EE4              EE4
    Many thanks in advance.
    Regards,
    Prakash
    Please do not dump your code requirements in SDN
    Edited by: Pravender on May 18, 2011 11:37 AM

    Hi,
    You can use the following code :
    Suppose the technical name of the field coming from DSO is ZPAY_SGRP.
    And also for example let me take one record, that is ZPAY_SGRP = AA1/B1/CCC2/DD2/EEE1 .
    My assumption is that there will always be 4 '/'.
    In the field routine write the below code
    data: V1(5) type c,
              V2(5) type c,
             V3(5) type c,
              V4(5) type c,
             V5(5) type c.
    data : VAR1 TYPE /BIC/OIZPAY_SGRP.
    split VAR 1  at '/' into V1 V2 V3 V4 V5.
    result = V5.
    V5 will be having the characters after the last '/' .That is V5 = EEE1.
    Hope the above reply was helpful.
    Kind Regards,
    Ashutosh Singh
    Edited by: Ashutosh Singh on May 17, 2011 3:53 PM
    Edited by: Ashutosh Singh on May 17, 2011 4:17 PM

  • Sample ABAP code for userexits, and calling bapi's

    Hi,
    Can someone please send me sample ABAP code
    1) to do extractor enhancement using user exit.
    2) ABAP program to call BAPI to read live cache order series data in SNP and write to Idocs through some ports.
    3) ABAP routine to generate file name (based on date/country)in the infopackage to upload flatfiles.
    Thank you very much in advance and appreciate any help.
    Regards
    Prasad

    hai ,
    check this code...
    *& Tables
    tables : tstc,     "SAP Transaction Codes
             tadir,    "Directory of Repository Objects
             modsapt,  "SAP Enhancements - Short Texts
             modact,   "Modifications
             trdir,    "System table TRDIR
             tfdir,    "Function Module
             enlfdir,  "Additional Attributes for Function Modules
             tstct.    "Transaction Code Texts
    *& Variables
    data : jtab like tadir occurs 0 with header line.
    data : field1(30).
    data : v_devclass like tadir-devclass.
    *& Selection Screen Parameters
    selection-screen begin of block a01 with frame title text-001.
    selection-screen skip.
    parameters : p_tcode like tstc-tcode obligatory.
    selection-screen skip.
    selection-screen end of block a01.
    *& Start of main program
    start-of-selection.
    Validate Transaction Code
      select single * from tstc
        where tcode eq p_tcode.
    Find Repository Objects for transaction code
      if sy-subrc eq 0.
        select single * from tadir
           where pgmid    = 'R3TR'
             and object   = 'PROG'
             and obj_name = tstc-pgmna.
        move : tadir-devclass to v_devclass.
        if sy-subrc ne 0.
          select single * from trdir
             where name = tstc-pgmna.
          if trdir-subc eq 'F'.
            select single * from tfdir
              where pname = tstc-pgmna.
            select single * from enlfdir
              where funcname = tfdir-funcname.
            select single * from tadir
              where pgmid    = 'R3TR'
                and object   = 'FUGR'
                and obj_name = enlfdir-area.
            move : tadir-devclass to v_devclass.
          endif.
        endif.
    Find SAP Modifactions
        select * from tadir
          into table jtab
          where pgmid    = 'R3TR'
            and object   = 'SMOD'
            and devclass = v_devclass.
        select single * from tstct
          where sprsl eq sy-langu
            and tcode eq p_tcode.
        format color col_positive intensified off.
        write:/(19) 'Transaction Code - ',
        20(20) p_tcode,
        45(50) tstct-ttext.
        skip.
        if not jtab[] is initial.
          write:/(95) sy-uline.
          format color col_heading intensified on.
          write:/1 sy-vline,
          2 'Exit Name',
          21 sy-vline ,
          22 'Description',
          95 sy-vline.
          write:/(95) sy-uline.
          loop at jtab.
            select single * from modsapt
            where sprsl = sy-langu and
            name = jtab-obj_name.
            format color col_normal intensified off.
            write:/1 sy-vline,
            2 jtab-obj_name hotspot on,
            21 sy-vline ,
            22 modsapt-modtext,
            95 sy-vline.
          endloop.
          write:/(95) sy-uline.
          describe table jtab.
          skip.
          format color col_total intensified on.
          write:/ 'No of Exits:' , sy-tfill.
        else.
          format color col_negative intensified on.
          write:/(95) 'No User Exit exists'.
        endif.
      else.
        format color col_negative intensified on.
        write:/(95) 'Transaction Code Does Not Exist'.
      endif.
    Take the user to SMOD for the Exit that was selected.
    at line-selection.
      get cursor field field1.
      check field1(4) eq 'JTAB'.
      set parameter id 'MON' field sy-lisel+1(10).
      call transaction 'SMOD' and skip first screen.

  • ABAP code for BI 7.0 transformations start routine

    Hi all,
    I am trying to update data from DSO1 (Source1: transaction data) to Infocube(TARGET)
    In the transformations Start routine, I have to read DSO2(Source2: Master data) for some fields.
    DSO1 has CUSTOMER as part of key
    DSO2 has CUSTOMER (key) and other fields....FIELD1, FILED2, FIELD3
    Infocube to be updated with FIELDS1,2 & 3 WHILE READING DSO2.
    WHERE DSO1 CUSTOMER matches with DSO2 CUSTOMER.
    Also, data NOT TO BE UPLOADED into Infocube if FIELD1 in DSO2= NULL
    Please give me the abap code for the above logic.
    Appreciate any help in this regard.
    Thanks.

    This is a doc from this site:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/6090a621-c170-2910-c1ab-d9203321ee19
    Ravi Thothadri

  • ABAP code needed to convert from 0calmonth2 & 0calyear to 0calmonth

    Hi SAP GURUS,
    Can anybody give me the ABAP code to convert from 0calmonth2 and 0calyear to 0calmonth.and please suggest me whether i have to write start routine or end routine in transformations.
    Thanks ALL.

    hi,
    in the transformation map 0calmonth2 and 0calyear to the 0calmonth field, and from drop down choose routine.
    there will be an area where it will be mentioned write your piece of code below this line.
    paste the below code:
    Concatenate source_fields-0calmonth2 source_fields-0calyear into result.
    also delete the line result = .
    save the routine and execute the package.
    regards,
    Arvind.

  • Update Routine - ABAP code

    Hi,
    I am trying to write an update routine to calculate and populate fields in my ODS infoprovider.
    one of the key figure field in my update rules is 'No. of Days'. Based on the 'No. of Days' range, I want to send a key figure(Infoobject:Due amount) value to another infoobject(Bucket1, Bucket2, Bucket3 ect.)in my ODS infoprovider. For example, let's say,
    IF NO. OF DAYS = >0 AND <=30
       THEN TAKE THE DUE AMOUNT PUT IN BUCKET1
    ENDIF.
    ELSE IF
       NO. OF DAYS = >31 AND <=60
       THEN TAKE THE DUE AMOUNT PUT IN BUCKET2
    ENDIF.
    ELSE IF
       NO. OF DAYS = >61 AND <=90
       THEN TAKE THE DUE AMOUNT PUT IN BUCKET3
    ENDIF.
    I think, I know the data flow logic but I don't know how to code in ABAP language. If someone can give me some psuedo like ABAP code, I would appreciate your help with points.

    Hi Roa,
    I would do this in the start routine of the update rule.
    Here is a sample on how do this. You could use a case statement for this code also.
    Loop at Data_Packet.
    IF NO. OF DAYS = >0 AND <=30
    Data_Packet-BUCKET1 = DUE AMOUNT
    ELSEIF
    NO. OF DAYS = >31 AND <=60
    Data_Packet-BUCKET2 = DUE AMOUNT
    ENDIF.
    ELSEIF
    NO. OF DAYS = >61 AND <=90
    Data_Packet-BUCKET3 = DUE AMOUNT
    ENDIF.
    modify data_packet.
    endlloop.
    Cheers! Bill

  • Creating a long text using ABAP code.. fm SAVE_TEXT

    When you create an order via IW31 one of the options is to click on the text button and create a long text. I am basically trying to mimic this action from within my ABAP code.
    The text id details are as follows:
    Text Name       500000015000046  which is (5000000 + order number)
    Language        EN
    Text ID            KOPF         Order header text
    Text Object      AUFK       Order text
    If i manually create the text within the transaction i am then able to view and update it via function modules READ_TEXT and SAVE_TEXT. But if the text has not already been created READ_TEXT obviously returns nothing as it does not exist and SAVE_TEXT does not seem to created it!
    Anyone know how i would go about creating this text using ABAP code?
    Hope this make a bit of sense
    Thanks in advance
    Mart

    I have implemented the code as i think it should be. See below, can any see what is wrong. If i add init_text it makes no difference and adding the commit_text just makes it hang
    DATA: IT_TEXTS type standard table of TLINE,
           wa_texts like line of it_texts,
           wa_txtheader type THEAD.
    wa_txtheader-TDID     = 'KOPF'.
    wa_txtheader-TDSPRAS  = 'EN'.
    wa_txtheader-TDNAME   = '500000015000056'.
    wa_txtheader-TDOBJECT = 'AUFK'.
    wa_texts-tdformat = '*'.
    wa_texts-tdline = 'hello'.
    append wa_texts to it_texts.
    wa_texts-tdformat = '*'.
    wa_texts-tdline = 'hello'.
    append wa_texts to it_texts.
      wa_texts-tdformat = '*'.
    wa_texts-tdline = 'hello'.
    append wa_texts to it_texts.
    wa_texts-tdformat = '*'.
    wa_texts-tdline = 'hello'.
    append wa_texts to it_texts.
    wa_texts-tdformat = '*'.
    wa_texts-tdline = 'hello'.
    append wa_texts to it_texts.
      wa_texts-tdformat = '*'.
    wa_texts-tdline = 'hello'.
    append wa_texts to it_texts.
    CALL FUNCTION 'SAVE_TEXT'
      EXPORTING
        CLIENT                = SY-MANDT
        HEADER                = wa_txtheader
        INSERT                = 'X'
       SAVEMODE_DIRECT       = ' '
       OWNER_SPECIFIED       = 'X'
      LOCAL_CAT             = ' '
    IMPORTING
      FUNCTION              =
      NEWHEADER             =
      TABLES
        LINES                 = IT_TEXTS
    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.

  • Enhancement-ABAP Code-Customized Field issue

    Hi Experts,
    Currently I am working on the BW3.5 version. We are using the standard SRM standard extractor 0BBP_TD_SC_1 and we enhance same extractor(populate the filed through CMOD - ABAP Code) with one customized field also. We are having issue on the customized field data which post from SRM system. I have verified the field value and value is fine in RSA3 in SRM source system. But while posting into the BW(PSA itself), its loading correct & wrong value. When i check the PSA for the particular load, It looks little strange. In the PSA, I can see correct value on my first record of the same SC and then next records has incorrect value of the same SC. Currently I am using the ODS as a data target. So finally i am getting the incorrect value on the customized field.
    Ex Scenario:
    Ex Customized Field: ZORGID
    In SRM source system RSA3 Extractor Checker value:
    Shopping Card No: 100
    Customized Field: ZORGID=1
    Shopping Card No: 200
    Customized Field: ZORGID=2
    In BW posting-PSA:
    Shopping Card No: 100
    Customized Field: ZORGID=2
    Shopping Card No: 200
    Customized Field: ZORGID=2
    At the same time, if i do the selective deletion of the particular Shopping Card or group of SC in BW and do the full repair, then it gets a correct ZORGID=1 for the same Shopping Card.
    I strongly believe, something wrong in the ABAP code. But when we tried to debug the customized filed value in RSA3. The value is fine. so we unable to trace out the issue. Please help me to fix the code. Thanks in advance.
    CMOD ABAP Code:
    *Populate approver ID even though it doesn't require approval this is required to make sure BW reports have restrict access to respective Org Unit approvals only
    IF l_s_bbp_sc-approver_id IS INITIAL AND l_s_bbp_sc-itm_guid IS NOT INITIAL.
    CALL FUNCTION 'Z_BBP_FIRST_APPROVALGET'
    EXPORTING
    iv_header_guid = l_s_bbp_sc-guid
    iv_itm_guid = l_s_bbp_sc-itm_guid
    IMPORTING
    approver_no = l_s_bbp_sc-approver_id
    EXCEPTIONS
    no_data = 1
    OTHERS = 2
    IF sy-subrc 0.
    ENDIF.
    ENDIF.
    To ensure that the Org Unit passed in into the field
    l_s_bbp_sc-zzapprov_orgunit belongs to the Actual Level 1
    Budget Owner and not any other manager such as Added Approver.
    CLEAR : ls_ln_approvers, l_userid, lv_bpartner_guid.
    DATA : lv_f_apprv_part TYPE BU_PARTNER.
    READ TABLE lt_ln_approvers INTO ls_ln_approvers
    WITH KEY INITIAL_INDEX = '0000000001'.
    IF sy-subrc EQ 0.
    MOVE ls_ln_approvers-approval_agent+2(12) TO l_userid.
    CALL FUNCTION 'BP_CENTRALPERSON_GET'
    EXPORTING
    iv_username = l_userid
    IMPORTING
    ev_bu_partner_guid = lv_bpartner_guid
    EXCEPTIONS
    no_central_person = 1
    no_business_partner = 2
    no_id = 3
    OTHERS = 4.
    IF sy-subrc = 0.
    CALL FUNCTION 'BUPA_NUMBERS_GET'
    EXPORTING
    iv_partner_guid = lv_bpartner_guid
    IMPORTING
    ev_partner = lv_f_apprv_part.
    ENDIF.
    ENDIF.
    We get the BP number of the first Budget Owner 1
    Here, we superseed the field l_s_bbp_sc-approver_id
    whereby it may be wrong due to Added Approver.
    IF l_s_bbp_sc-approver_id IS NOT INITIAL.
    IF lv_f_apprv_part IS NOT INITIAL.
    IF l_s_bbp_sc-itm_guid IS NOT INITIAL.
    CALL FUNCTION 'RH_STRUC_GET'
    EXPORTING
    act_otype = 'BP'
    act_objid = lv_f_apprv_part
    act_wegid = 'EBP-UP'
    act_begda = sy-datum
    act_endda = sy-datum
    act_tdepth = 4
    TABLES
    result_tab = lt_result_tab
    EXCEPTIONS
    no_plvar_found = 1
    no_entry_found = 2
    OTHERS = 3
    IF sy-subrc = 0.
    READ TABLE lt_result_tab INTO ls_result_tab WITH KEY
    otype = 'O'.
    IF sy-subrc EQ 0.
    l_s_bbp_sc-zzapprov_orgunit = ls_result_tab-objid.
    ELSE.
    ENDIF.
    ENDIF.
    ENDIF.
    Thanks,
    RR

    Hi Experts,
    Any suggestions. Thanks.
    Thanks,
    RR

  • IDOC: How to create child segment with abap code.

    Hi,
    I'am trying to write an abap code to create segments for an Idoc which structure is the following:
    ZLE_00060_DLVY
    >  E1EDL20
    > Z1DEL_CONS
    >Z1DEL_MAT_HEADER
    > Z1DEL_MAT
    > E1EDL20RET2
    > E1EDL22
    > E1EDL21
    > E1EDL23
    > E1EDL51
    I receive a sintax error: Error in IDoc with status 26 .
    Checking the result I note all segment at the same level and an error about the segment E1EDL22
    EDI: Syntax error in IDoc (segment cannot be identified)
         Message no. E0078
    Diagnosis
         The segment E1EDL22 does not occur at the current level of the basic
         type DELVRY05 (extension ZLE_00060_DLVY).
         This error can have several reasons:
         o   The segment E1EDL22 is assigned to a group whose header segment does
             not occur.
         o   The segment E1EDL22 does not exist in the syntax description of the
             basic type DELVRY05 (extension ZLE_00060_DLVY).
         o   The sequence of segments in the group in which the segment appears
             is incorrect.
         Previous errors ('mandatory' segment or group missing) may be due to
         this error.
    Procedure
         Please check the IDoc or the syntax description of the basic type
         DELVRY05 (extension ZLE_00060_DLVY).
    After the error I have:
    data records
    E1EDL20
    Z1DEL_CONS
    Z1DEL_MAT_HEADER
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    E1EDL20RET2
    E1EDL22
    E1EDL21
    Abap code:
            idoc_data-segnam = 'Z1DEL_CONS'.
            idoc_data-sdata = s_z1del_cons.
            append idoc_data.
              idoc_data-segnam = 'Z1DEL_MAT_HEADER'.
              s_z1del_mat_header-tsegment = 'MATERIAL'.
              idoc_data-sdata = s_z1del_mat_header.
              append idoc_data.
            clear idoc_data-sdata.                            <<<<<<<<<<< how to indent the structure because this is a child.
             idoc_data-sdata = s_Z1DEL_MAT.
             idoc_data-segnam = 'Z1DEL_MAT'.
             append idoc_data.
             idoc_data-segnam = 'E1EDL20RET2'.
             idoc_data-sdata = s_E1EDL20RET2.
             append idoc_data.
             clear idoc_data.
             idoc_data-segnam = 'E1EDL22'.
             idoc_data-sdata = s_e1edl22.
             append idoc_data.
             clear idoc_data.
             idoc_data-segnam = 'E1EDL21'.
             idoc_data-sdata = s_e1edl21.
             append idoc_data.
    Any help will be well appreciated.
    Thanks in advance.
    Regards,
        Giovanni

    Hi,
    following in debugging mode the abap code of the INCLUDE ZXTRKU02 where is defined the TABLES IDOC_DATA STRUCTURE  EDIDD, I find that all field of the table IDOC_DATA are not set. More exactly my expectation is to find values for SEGNUM, HLEVEL, PSGNUM.
    In a few words I need to execute an enhancement, via abap code, of the struscure of the idoc before sending it out since I have a requirement to test this enhancement in my XI environment, receiving as input this ideoc modified.
    Then, I need to add a new segment and one child.
    Any suggestion will be well appreciated.
    Thanks in advance.
    Regards,
        Giovanni

  • Schedule a background job for a program using ABAP code.

    Hi,
    I have to write a program to schedule a background job for another program.
    Need your help to understand how we can achieve this functionality.Any example of an abap code would be of great help.
    Need it urgently.
    Thanks in advance.
    Sandeep.

    Hi Sandeep,
    Here is the demo program regarding the BDC For the background job.
    report zprprbdc1
           no standard page heading line-size 255.
    include bdcrecx1.
    parameters: dataset(132) lower case.
    ***    DO NOT CHANGE - the generated data section - DO NOT CHANGE    ***
    *   If it is nessesary to change the data section use the rules:
    *   1.) Each definition of a field exists of two lines
    *   2.) The first line shows exactly the comment
    *       '* data element: ' followed with the data element
    *       which describes the field.
    *       If you don't have a data element use the
    *       comment without a data element name
    *   3.) The second line shows the fieldname of the
    *       structure, the fieldname must consist of
    *       a fieldname and optional the character '_' and
    *       three numbers and the field length in brackets
    *   4.) Each field must be type C.
    *** Generated data section with specific formatting - DO NOT CHANGE  ***
    ***data: begin of itab occurs 0 ,
    ***       matnr(20) type c,
    ***       mbrsh(30) type c,
    ***       mtart(30) type c,
    ***       kzsel(20) type c,
    ***       maktx(40) type c,
    ***       meins(5) type c,
    ***       end of itab.
    data: begin of record occurs 0,
    * data element: MATNR
            matnr_001(018),
    * data element: MBRSH
            mbrsh_002(001),
    * data element: MTART
            mtart_003(004),
    * data element: XFELD
            kzsel_01_004(001),
    * data element: MAKTX
            maktx_005(040),
    * data element: MEINS
            meins_006(003),
    * data element: MTPOS_MARA
            mtpos_mara_007(004),
          end of record.
    *** End generated data section ***
    start-of-selection.
    *perform open_dataset using dataset.
    perform open_group.
    **do.
    **read dataset dataset into record.
    **if sy-subrc <> 0. exit. endif.
    call function 'GUI_UPLOAD'
      exporting
        filename                      = 'c:\jitu\bdc\10002.txt'
       filetype                      = 'ASC'
       has_field_separator           = 'x'
    *   HEADER_LENGTH                 = 0
    *   READ_BY_LINE                  = 'X'
    *   DAT_MODE                      = ' '
    *   CODEPAGE                      = ' '
    *   IGNORE_CERR                   = ABAP_TRUE
    *   REPLACEMENT                   = '#'
    *   CHECK_BOM                     = ' '
    *   VIRUS_SCAN_PROFILE            =
    *   NO_AUTH_CHECK                 = ' '
    * IMPORTING
    *   FILELENGTH                    =
    *   HEADER                        =
      tables
        data_tab                      = record
    * EXCEPTIONS
    *   FILE_OPEN_ERROR               = 1
    *   FILE_READ_ERROR               = 2
    *   NO_BATCH                      = 3
    *   GUI_REFUSE_FILETRANSFER       = 4
    *   INVALID_TYPE                  = 5
    *   NO_AUTHORITY                  = 6
    *   UNKNOWN_ERROR                 = 7
    *   BAD_DATA_FORMAT               = 8
    *   HEADER_NOT_ALLOWED            = 9
    *   SEPARATOR_NOT_ALLOWED         = 10
    *   HEADER_TOO_LONG               = 11
    *   UNKNOWN_DP_ERROR              = 12
    *   ACCESS_DENIED                 = 13
    *   DP_OUT_OF_MEMORY              = 14
    *   DISK_FULL                     = 15
    *   DP_TIMEOUT                    = 16
    *   OTHERS                        = 17
    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 record .
    perform bdc_dynpro      using 'SAPLMGMM' '0060'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-MATNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RMMG1-MATNR'
                                  record-matnr_001.
    perform bdc_field       using 'RMMG1-MBRSH'
                                  record-mbrsh_002.
    perform bdc_field       using 'RMMG1-MTART'
                                  record-mtart_003.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(01)'
                                  record-kzsel_01_004.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BU'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx_005.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARA-MEINS'.
    perform bdc_field       using 'MARA-MEINS'
                                  record-meins_006.
    perform bdc_field       using 'MARA-MTPOS_MARA'
                                  record-mtpos_mara_007.
    perform bdc_transaction using 'MM01'.
    **enddo.
    endloop.
    perform close_group.
    *perform close_dataset using dataset.
    &*****************Reward point if helpful************&

Maybe you are looking for

  • Do you have any idea, why I can see only 15 episodes of my 59 published podcasts?

    I need your help... I`ve already published 59 podcasts (TomsTalkTime - DER Erfolgspodcast), but my audience can only see the last 15 episodes published in iTunes. Why is that? Can anyone help me? Thank you so much for your help. Best Tom https://itun

  • Meter reading order simulation

    Hello experts, I need to "simulate" meter reading order creation process, to download orders (EL35, with specific formkey) and use the file for external system. Is this possible? Thanks, Angela

  • Links not working first time

    When I click on a link the only thing that happens is the icon in the task bar jumps to the right and back. I have to click several times before the link works ?

  • Dot1q and 6248 Interconnects Connectivity

    Hello, Is dot1q supported on the 6248 Interconnects? We have a few 3750's and we have FC connected from the 3750's to the interconnects with the following configuration: Int gx/x/x Switchport mode trunk Switchport trunk encap dot1q Switchport trunk a

  • Can itunes run from a external hard drive

    can itunes be installed on an external hard drive?