How to capture the product change on the item level in CRM GUI.

Dear All:
There is a line item in the sales order. Now I change the product of the line item. I want to capture the change in CRM GUI.
PS:
There is a reference thread, in which I know we can capture the change in WebUI with the component T115IT_SLSO.
Can the old product be captured after I changed the product in order item?
But I want to know how to capture the change in GUI. Anybody can help me? Thanks in advance.

Hi,
when you create an item in GUI tcode CRMD_ORDER, badi CRM_ORDERADM_I_BADI will be triggered.
Method CRM_ORDERADM_I_PRODUCT_DETERM will have the Header and item guid and newly entered product in parameter IV_ORDERED_PRODUCT.
Regards,
Arun

Similar Messages

  • How to move the item level details to line item in the Purchase order form

    Hello,
    I am in SAP SRM7.0 system, my customers requirement is that the item level details like MPN (Manufacturer Part Number) etc.. should be moved to line item field in the Puchase Order.
    Can any one give me susggestion on this. This is not the correct forum for this thread but still pls post the link of related threads which may help in this regard.
    Regards
    Madhan

    HI Masa,
    THanks a lot for your reponse, in the option given by you i could find it to make visible or required but there is clue on moving the MPN to item field in the line item level. Can you give more input on this.
    Regards
    Madhan

  • Bom explosion how to restrict the item level posnr

    Hi friends
    TABLES : MAST.
    DATA: BEGIN OF ISTPO OCCURS 1000.
            INCLUDE STRUCTURE STPOX.
          DATA: END OF ISTPO.
    DATA: W_TOPMAT LIKE CSTMAT.
    SELECT-OPTIONS : P_MATNR FOR MAST-MATNR.
    PARAMETERS     : P_WERKS TYPE MAST-WERKS.
    DATA : BEGIN OF ITAB OCCURS 0,
               MATNR LIKE MAST-MATNR,
               WERKS LIKE MAST-WERKS,
               END OF ITAB.
    DATA: IT_STB LIKE ISTPO OCCURS 0 WITH HEADER LINE.
    *DATA : ITAB_STB LIKE ISTPO1 OCCURS 0 WITH HEADER LINE.
    START-OF-SELECTION.
    CLEAR ISTPO. REFRESH ISTPO.
    SELECT MATNR WERKS FROM MAST INTO CORRESPONDING FIELDS OF TABLE ITAB
    WHERE MATNR  IN
    P_MATNR AND WERKS = P_WERKS.
    LOOP AT ITAB.
      CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
        EXPORTING
          CAPID                 = 'PP01'
          MEHRS                 = 'X'
          MMAPS                 = 'X'
         BREMS                  = 'X'
          DATUV                 = SY-DATUM
          MTNRV                 = ITAB-MATNR
          WERKS                 = P_WERKS
          EMENG                 = '1'
          FBSTP                 = ' '
          FTREL                 = ' '
        IMPORTING
          TOPMAT                = W_TOPMAT
        TABLES
          STB                   = ISTPO
        EXCEPTIONS
          ALT_NOT_FOUND         = 1
          CALL_INVALID          = 2
          MATERIAL_NOT_FOUND    = 3
          MISSING_AUTHORIZATION = 4
          NO_BOM_FOUND          = 5
          NO_PLANT_DATA         = 6
          NO_SUITABLE_BOM_FOUND = 7
          OTHERS                = 8.
      IF SY-SUBRC = 0.
    WRITE:/ 'MaterialNumber' ,21 'Description'.
    SKIP 1.
    WRITE: / W_TOPMAT-MATNR UNDER TEXT-H00 COLOR COL_HEADING,
             W_TOPMAT-MAKTX UNDER TEXT-H01 COLOR COL_HEADING.
    LOOP AT ISTPO .
      WRITE :/ ISTPO-POSNR,
               ISTPO-IDNRK,
               ISTPO-OJTXP,
               ISTPO-MENGE,
               ISTPO-MEINS.
    ENDLOOP.
    ENDIF.
    *ENDLOOP.
    SKIP 5.
    ENDLOOP.
       here i gave the material no , it gave the bom of that materials.
      i restricted posnr itemnumber.
    postnr   component number complonentdesct u
    010        sfg
       010
       020
    020       sfg
    030       sfg
       010
       020
        i want  to get only sfg component how to use this logic in above coding.
    very urgent. give me a solutions
    Regards
    ds

    HI,
               my requirement is to explode the summaried bom ,using tcode cs13,
    we ll get multilevel  cs12 , in my report i got cs1 explosion,
    but i need to get like cs13 ouput using select-option,
    but i got the output i would like to restrict levels
      ABC IS MATERIAL
       D
         E
         F - E and f required to make a d,
      G
        H
           I  H  and i requried to make a g,
    i want to get only H , I, E,F =====> A
    D,G IS SFG.
    Regards
    ds

  • How to capture the changes in ppoma_crm transaction

    Hello All,
    We have a requirement that if we add either a BP or an User to a positon in ppoma_crm transaction then we should be able to update these entries in our z table.
    If it is a BP then we should look for the User mapped to it and update the z table else we should directly update the z tables with user name.
    But we are facing an issue in capturing the values that have been updated.
    Can anyone tell me how to capture the new values in the BADI for the ppoma_crm transaction ?
    Regards
    Sohit

    Did any guys here face the requirement? If replicating all the columns some of which may change frequently but are not important to the other sites, then i wouldn't replicate these changes in order to improve the performance. Thanks for your help!

  • How to change the product category on the item level of a Sales order

    1) For each product there are Basic Product Hierarchy and Sales Product
    Hierarchy.
    2) when creating sales order, system gets the Sales Product Hierarchy
    on the Item level with the default logic.
    So our question is: how to change the logic to let system get the Basic
    Product Hierarchy on the Item Level.

    Hi,
    I believe the POSTING DATE will appear on the accounting document
    In the Accounting document, the posting date will be based on the  Billing date.
    Please let me know if you need any more details
    santosh

  • How to capture the Logout time in xMII

    Hi Friends,
    How to capture the logout time in xMII when the user clicks on Logout link
    Thanks

    Srikanth,
    It would be better to use a database table(s) to store your audit trail information than an xml file, which could grow beyond a manageable size and then require housekeeping efforts and file rolling, etc.  It would also be much easier to query user related information out of the logs, pareto charts for failed vs. successful login attempts, etc. if the data was stored in a database.
    Have you considered modifying the Relogin.jsp page link in the portal's sub-menu bar?  How about making your own version of this web page and changing the link pointer?  Keep in mind that whatever result you come up with here will need a significant update for NetWeaver UME compatibility in version 12.0.
    Regards,
    Jeremy

  • How to capture the date and time of  a background job

    Hi experts,
    How to capture the date and time of  a background job?
    How to find whether it is runned succesfully or not?
    If it is not successful how to put error message?
    ASAP
    Thanx in advance,
    Sudha

    To Display the STATUS of the JOB which is exectued in background
      CLEAR : wa_jobsteplist.
      REFRESH : i_jobsteplist.
      WRITE:/ 'DISPLAYING JOB STATUS'.
      CALL FUNCTION 'BP_JOB_READ'
        EXPORTING
          job_read_jobcount           = w_jobcount
          job_read_jobname            = w_jobname
          job_read_opcode             = '20'
        JOB_STEP_NUMBER             =
       IMPORTING
         job_read_jobhead            = wa_jobhead
       TABLES
         job_read_steplist           = i_jobsteplist
    CHANGING
       RET                         =
       EXCEPTIONS
         invalid_opcode              = 1
         job_doesnt_exist            = 2
         job_doesnt_have_steps       = 3
         OTHERS                      = 4
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    To Display the status text as per the status type
      CASE wa_jobhead-status.
        WHEN 'S'. WRITE: / 'Scheduled'.
        WHEN 'R'. WRITE: / 'Released'.
        WHEN 'F'. WRITE: / 'Completed'.
        WHEN 'A'. WRITE: / 'Cancelled'.
        WHEN OTHERS.
      ENDCASE.

  • How to capture the string values

    Hi Gurus,
    Could you plz suggest me how to capture the string value.
    My requirement is.
    I have a structure field called  cnj_stat-sttxt_int and it is storing a value like "REL CDRT AVAC". AND the moddile value CDRT will change according to condtions. now i required to write a logic like if cnj_stat-sttxt_int field contain 'REL' and 'AVAC'.  I HAVE TO THROW SOME ERROR.
    SO please give some idea about on it...
    Its urgent..
    points will be rewarded...
    Thanks in advance!!!!
    Thanks & regards,
    Kranthi.

    if cnj_stat-sttxt_int field contain 'REL' and 'AVAC'. I HAVE TO THROW SOME ERROR.
    if cnj_stat-sttxt_int CS 'REL' and cnj_stat-sttxt_int CS 'AVAC'.
    THROW SOME ERROR.
    endif.

  • How to capture the values given in SSC1 transcation?

    Hello All,
    Can anyone suggest me, how to capture the values given in SSC1 transaction?

    Hello Clemens Li,
    Requirement: Integration of SAP Appointment Calendar with Gmail Calendar
    If I create an appointment in SSC1 transaction, it will appear in SAP Appointment calendar. The same thing should get updated in Gmail calendar of SAP user and also in the guest Gmail calendar if exists in appointment.
    So, I have to capture the input values given in SSC1 transaction while creating an appointment in SAP and try to export those values to web services using some function module.  Sending those values to web services completes my task.
    Means, if I create an appointment in SAP, at the same time, the values which I gave must get exported to some object. So that I can send them to web services.
    But my actual problem is with capturing the input values given to SSC1 transaction.
    How can I get those values out to some internal table?
    Another one is, I did not found any BADI to enhance SSC1 transaction so that I can include my code there.
    If you know any enhancements in SSC1, please let me know.
    If you want any more clarification, please let me know.
    Thanks for the response
    DNR Varma

  • How to capture the current info in the top-of-page event in Reuse block dis

    How to capture the current info in the top-of-page event in Reuse block dis

    Hi Geetha,
         If you don't have any information to pass the Heading Block, then why you are using this event ?
         please comment/ remove that TOP_OF_PAGE code. and use subtotal code in field catalog block.
          you can use below code for subtotal. 
          FORM field_catalog .
                    gs_fcat-do_sum = &2.
              fcat : 'WRBTR' '15' 'X' ' ' ' ' 'WRBTR' 'Amount',
           ENDFORM.
           Regards,
           Kunjan

  • How to capture the data entered in a textfield in a JTable

    How to capture the data entered in a textfield present in a cell of a textfield or how to add listener to this textfield

    A sample of my code is:
              model = new GridDisplayTableModel(gridDisp,columnName,getRows(),getCols());
              final ComboRenderer cRenderer = new ComboRenderer();
              final TextFieldRenderer tRenderer = new TextFieldRenderer();
              combo.addItem("one");
              combo.addItem("two");
              combo.addItem("three");
              final JTextField textfield = new JTextField();
              final DefaultCellEditor cmbEditor = new DefaultCellEditor(combo);
         //     final JEnterDataCellEditor textEditor = new JEnterDataCellEditor(12);
              final DefaultCellEditor textEditor = new DefaultCellEditor(textfield);
              rm = new RowEditorModel();
              table = new JTable(model){
         public TableCellRenderer getCellRenderer(int row, int column) {
              int posx = 0;
                   int posy = 0;
                   TableCellRenderer renderer = null;
         for(int l=0;l<getDataVec().size();l++)
                   beanObj =(Helperbean)dataVec.elementAt(l);
                   posx = beanObj.getPosx();
                   posy = beanObj.getPosy();
                   if(row==posx && column==posy)
                             if(beanObj.getModeofDisplay() != null && beanObj.getModeofDisplay().equalsIgnoreCase("textfield"))
                                  rm.addEditorForRow(row,textEditor);
                                  renderer = tRenderer;
                             else if(beanObj.getModeofDisplay() != null && beanObj.getModeofDisplay().equalsIgnoreCase("combo"))
                                  rm.addEditorForRow(row,cmbEditor);
                                  renderer = cRenderer;
                             break;
                        renderer = super.getCellRenderer(row, column);
              //     System.out.println("getEditor"+rm.getEditor(1));
         return renderer;
    public TableCellEditor getCellEditor(int row, int col) {   
         int posx = 0;
         int posy = 0;
         TableCellEditor tmpEditor = null;
    for(int l=0;l<getDataVec().size();l++)
         beanObj =(Helperbean)dataVec.elementAt(l);
         posx = beanObj.getPosx();
         posy = beanObj.getPosy();
         if(row==posx && col==posy)
                   if(beanObj.getModeofDisplay() != null && beanObj.getModeofDisplay().equalsIgnoreCase("textfield"))
                        System.out.println("celleditorval "+textEditor.getCellEditorValue());
                        tmpEditor = textEditor;
                   else if(beanObj.getModeofDisplay() != null && beanObj.getModeofDisplay().equalsIgnoreCase("combo"))
                        tmpEditor = cmbEditor;
                   break;
              tmpEditor = super.getCellEditor(row, col);
    return tmpEditor;
    public boolean isCellEditable(int row,int col){
         boolean isEditable = false;
         int posx = 0;
         int posy = 0;
    for(int l=0;l<getDataVec().size();l++)
         beanObj =(Helperbean)dataVec.elementAt(l);
         posx = beanObj.getPosx();
         posy = beanObj.getPosy();
         if(row==posx && col==posy)
              if(beanObj.getModeofDisplay() != null )     
                        isEditable = true;     
                   else
                        isEditable = false;     
                   break;
         isEditable = false;
         return isEditable;
    public void changeSelection(final int row, final int column, boolean toggle, boolean extend) {
         super.changeSelection(row, column, toggle, extend);
         //my attempt to avoid editCellAt from being called twice in a row
         if (getModel().isCellEditable(row, column) && !(isEditing() && getEditingRow() == row && getEditingColumn() == column))
              if (editCellAt(row, column)) {
                   getEditorComponent().requestFocus();
         // Select the text when the cell starts editing
    public boolean editCellAt(int row, int column) {       
         boolean result = super.editCellAt(row, column);
         final Component editor = getEditorComponent();
         if (editor != null && editor instanceof JTextField) {           
              SwingUtilities.invokeLater(new Runnable() {               
                   public void run() {                   
                        ((JTextField)editor).selectAll();
              return result;
         public boolean hasFocus()
              Component editorComponent = getEditorComponent();
              // Try to install the editor
              int anchorRow = getSelectionModel().getAnchorSelectionIndex();
              int anchorColumn = getColumnModel().getSelectionModel().
              getAnchorSelectionIndex();
              if (anchorRow != -1 && anchorColumn != -1 && !isEditing())
              if ((this.getSelectedRow() == anchorRow) && (this.getSelectedColumn() == anchorColumn))
              if (!editCellAt(anchorRow, anchorColumn)) {}
              return super.hasFocus();
         public void valueChanged(ListSelectionEvent e)
              super.valueChanged(e);
              if ((this.getSelectedRow() == 2) && (this.getSelectedColumn() == 3))
                   DefaultFocusManager focusManager = new DefaultFocusManager();
                   focusManager.focusNextComponent(this);
                   model.fireTableStructureChanged();
         

  • How to Capture the Objects in Object Library in Openscript tool?

    Hi All,
    I am new to OATS and i was trying to explore the Object Library in Opencript tool.
    Can anyone please advise me how to capture the Oracle forms Object in Object Library or Object Repository using OpenScript Tool?
    It would be grateful,If you can provide me the step to follow for the above.
    Thanks
    Ajith

    Hi Ajith,
    Create one Object Library. In OpenScript click File -> New -> Select Object Library under Script Assets.
    Then mention name of your library and save it.
    Add this library to script assets of your script. Select Script -> Script Properties... -> Script Assets -> Object Library -> Add(button) -> select your Object Library.
    Then save  your script and start recording. After recording you can see xpath of all objects you interacted with during your script recording.
    If you want to apply this to your script, select Script -> Apply Object Library.. -> then select your Object Library. If you want to revert it, then select Script --> Revert All Navigation To Recorded
    Hope this will help you...
    Regards,
    Deepu M

  • How to capture the parameter in webdynpro application?

    Hi ,
    We have a requirement like this :
    the scenario is :
    user will get a mail to  inbox(here mail is coming from SAP Workflow) saying that :"proposal is waiting for your approval".for details please click on the below link:
    once user clicks on the link it has to open up the webdynpro application and has to display the details of the particular proposal no.
    how to pass the proposal no to the webdynpro application URL and how to capture the proposalno in webdynpro java?
    Thanks in advance.
    Regards,
    Pavani

    From the workflow when you create the link, also add the proposal number as an url parameter.
    For example if the url for requesting WD application is <WD_URL>, then URL with parameter would be
    <WD_URL>?PROPOSAL_NO=<actual_proposal_number>
    In the webdynpro, you can access this parameter with the following piece of code(ideally in wdDoInit of component controller).
    String proposalNo = WDProtocolAdapter.getProtocolAdapter().getRequestObject().getParameter("PROPOSAL_NO");
    Regards
    kk..

  • How to capture the event in ALV grid display?

    Hi experts,
      How to capture the event in an ALV grid display which is editable. I have to capture the TAB key or ENTER key.
    regards,
    Arul Jothi.

    Hi Arul,
    Take a look at sample program BCALV_EDIT_03. (Find string "register ENTER" in the program to see how to register)
    Basically you have to Register edit events using method call REGISTER_EDIT_EVENT and then write a handler method for event DATA_CHANGED..
    If you are using a REUSE..GRID fm then first get the grid reference using function module GET_GLOBALS_FROM_SLVC_FULLSCR and then repeat the above procedure..
    Hope this helps..
    Sri
    Message was edited by: Srikanth Pinnamaneni

  • How to capture the first execution of a report

    Hi,
    I am executing a report in background. The first time the report is executed I have to do a different processing. After the 1st execution I have to different processing.
    Someone please tell me how to capture the 1st execution of a report. Is there a system variable ?
    Appreciate your <removed by moderator> response.
    Thanks,
    Dikshitha G
    Edited by: Thomas Zloch on May 12, 2011 11:36 AM

    Keshav.T wrote:
    Are you going to create a Z table for this ???? ... Is there nobody to advice you in your firm ???
    Hello Keshav,
    A couple of years ago i would have recommended using the INDX table, but it has got it's demerits.
    Maintenance of Z-table is easier than the INDX table. Say there is some error in the program & you want to override the flag. Will it be easier to do so in the INDX table or via SM30 for the Z-Table?
    As a matter-of-fact i will recommend using the solution provided by Florian the TVARVC technique.
    1. Create a parameter(specific to your program) & transport it.(See the trxn STVARV)
    2. In your program check the value of this param & set it accordingly.
    Using TVARVC you will 2 birds with one stone:
    1. You don't have to create a custom table.
    2. Easy maintenance via STVARV trxn.
    Hope you get the point!
    Cheers,
    Suhas
    PS: In our system we have a Z-table designed specifically for this particular purpose. All the programs having this kind of requirement refer to this table.

Maybe you are looking for

  • How can I convert an array to image(8bit)

    I can convert an array(acquire from usb camera)to a picture,but not images(8 bit grayscale),how can I do it.many thanks! Attachments: array to image.vi ‏249 KB

  • Does an external hard drive have to stay plugged in with Time Machine?

    I have an external hard drive but I do not always leave it plugged in.  I usually back up my computer every week or so and am just now getting around to using Time Machine. If i plug in my external hard drive and press "Back up now" will Time machine

  • Room (template and content) Transport from EP6 to EP7

    Hello, We upgraded our EP from ver6 to ver7 . We had room with content (documents) in the 6 ver and we are trying to transport the rooms to the new EP 7. So far we had no luck. Is it possible to do so? If yes How?. Thanks in advance Yoav

  • Error code NP-34991-6

    So I recently got the new batman Arkham knight game. I preordered it and played it. After a while i decided to buy the season pass. However, i never got any story packs such as red hood, harley quinn, etc. I told my buddy about this issue and he said

  • C5280 printer paper size error

    It wont let me change the paper size in the features section. I want to custom size the paper and it wont let me hit ok after putting in the size I need. It says the custom paper size that you have defined will not become available until you have exi