Lookup DSO in Start Routine and End Routine to update date

Hi Gurus,
I need a Start Routine & help, while loading the data from DSO to Info Cube.
In the DSO ( /BIC/AZSD_O0300 ) & in the InfoCube I have a common fields are
0DOC_NUMBER ( DOCUMENT NUMBER), 0S_ORD_ITEM ( Sales Document Item Number ), 0SCHED_LINE ( Schedule Line ) and 0MATAV_DATE ( Material Available Date ).
Data in DSO is as follows
0DOCNUMBER_ 0SORD_ITEM_ 0SCHEDLINE_ 0MATAVDATE_
1001 10 1 05/21/2011
1001 20 2 05/26/2011
1001 10 2 05/22/2011
1001 20 1 05/18/2011
1002 20 1 05/20/2011
1002 10 1 05/24/2011
1002 10 2 05/28/2011
Data should load in the InfoCube as below.
0DOCNUMBER    0S_ORD_ITEM     0SCHED_LINE    0MATAV_DATE
1001          10    1   05/21/2011
1001          20    2   05/18/2011
1001          10    2   05/21/2011
1001          20     1  05/18/2011
1002         20     1  05/20/2011
1002         10    1   05/24/2011
1002         10     2   05/24/2011  
When ever schedule line is 2 for the record we have to check both Document number and 0S_ORD_ITEM are same change the Material moving date to the date schedule line is 1 for the same document and same order item number.
Your help is really appreciated.
Thanks
Ganesh Reddy.

Thanks Parth and Raj. I have written code almost as you suggested just little changes.
Start Routine
TABLES:/BIC/AZSD_O0300.
DATA:ITAB_DSO LIKE /BIC/AZSD_O0300.
TYPES: BEGIN OF ITABTYPE,
DOC_NUM TYPE /BI0/OIDOC_NUMBER,
SAL_DOC_NUM TYPE /BI0/OIS_ORD_ITEM,
SCHED_NUM TYPE /BI0/OISCHED_LINE,
MAT_AV_DATE TYPE /BI0/OIMATAV_DATE,
END OF ITABTYPE.
DATA : ITAB TYPE STANDARD TABLE OF ITABTYPE
       WITH HEADER LINE
       WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
data: wa_itab type ITABTYPE.
SELECT DOC_NUMBER S_ORD_ITEM SCHED_LINE MATAV_DATE
  FROM /BIC/AZSD_O0300
  INTO TABLE ITAB
  WHERE SCHED_LINE = '1'.
Field Routine.
if SOURCE_FIELDS-S_ORD_ITEM <> '1'.
      read table itab into wa_itab with key    doc_num =
      SOURCE_FIELDS-DOC_NUMBER
                                         SAL_DOC_NUM =
                                         SOURCE_FIELDS-S_ORD_ITEM.
      if sy-subrc = 0.
      RESULT = wa_itab-MAT_AV_DATE.
    endif.
  endif.
I haven't check how the data is coming. But for now I am closing this issue.
Thanks Again
Ganesh Reddy.

Similar Messages

  • Start Routine Logic Updating Field in Target ODS

    Hi,
    I am creating a  Start Routine to Update Field (date) from one ODS to another based on the Key Structure: Document Number, Line Item Number.
    I am encountering a situation as follows:
    Source
    Doc Num 1 Line Item 10 Date 1/1/1
    Target
    Doc Num 1 Line Item 10 Date 1/1/1
    DocNum 1 Line Item 20
    DocNum 1 Line Item 30
    DocNum 1 Line Item 40
    The Routine I have now correctly updates line item 10 with the date 1/1/1.
    I am trying to modify the code to only update the target ods if all of the line items are in the source.  In this example Line Item 10 would not get updated since Line Items 20,30,40 are not in the Source ODS. 
    Has anyone encountered something like this.
    Thanks for any help.

    Hi,
    If you have all the line items in target for which you want to do updates  you can do this in transformation start routine.
    Try this first hand logic :
    1. Create a internal tables(say SOURCE_INTERNAL_TABLE and TARGET_INTERNAL_TABLE)
        with fields document number and another field integer say COUNTER
    2. Read active table of source for all the document numbers in source package.
    3. Update the SOURCE_INTERNAL_TABLE for all the document number with appropriate counts
        (All the records of same document number should be in same data package)
    4. Update the TARGET_INTERNAL_TABLE by reading the target ODS as done for source.
    5. LOOP  AT SOURCE_PACKAGE
         if COUNTER in SOURCE_INTERNAL_TABLE and TARGET_INTERNAL_TABLE is not same
         then delete the record from source package itself
       END LOOP
    6. Your next code
        (Please take care that you are not referring the deleted records otherwise it will through a dump)
    If you don't have all the line items in target then you need to bring them somewhere in BI (document number and item number only sufficient with both as a key fields) so as to refer them in your start routine.
    Please update me if anything is wrong or if any corrections in logic.
    Thanks and Regards,
    Prashant Vankudre.

  • Start routine to update some fields of a ODS based on the another ODS

    Hi I know i have to do abap coding at the start routine to update a ODS based on another ODS. I have tried doing the code for quite some time now and i have not been successful. I think I havenu2019t followed the definition required for this routine.
    I have 2 ODS, ODS1 has 3 key fields and ODS2 has 1 key field
    I have to map the ODS based on a 1:3 relation.
    I am writing this start routine for the update rules from ODS2 to ODS1.
    The logic is if the key field of ODS2 is equal to either Key field 1 or Key field 2 or Key field 3 of ODS1 then that record from ODS2 has to be updated to the corresponding matching record of ODS1, else no update. The 3 key fields of ODS1 have different character length and character types and the key field of ODS2 has a different character length and type when compared to the any of the key fields of ODS2 can match any of those.
    Like key field 1 of ODS1 has length 10. Key field 2 of ODS1 has length 10 and key field 3 of ODS1 has length 20 and all these fields are not alpha converted, but the key field of ODS2 has length 60 and it is alpha converted.
    Can anyone please help me in this code.
    My Code is as below.
    ITAB1-T_BOL = DATA_PACKAGE-/BIC/ZLBOL.
    ***********NISTEVO SELECT******************************
      SELECT /BIC/ZLBOL FROM /BIC/AWLONST0100 INTO ITAB1-T_BOL
                  WHERE /BIC/ZLBOL = ITAB1-T_BOL .
    **************R/3 SELECT*******************************
        SELECT /BIC/ZLRDELNU /BIC/ZLRSHIPNU /BIC/ZLREXTID
                  FROM /BIC/AWLOR3O0400
                  INTO CORRESPONDING FIELDS OF ITAB1
                  WHERE
                  /BIC/ZLRDELNU = ITAB1-T_BOL OR
                   /BIC/ZLRSHIPNU = ITAB1-T_BOL OR
                   /BIC/ZLREXTID = ITAB1-T_BOL .
          SORT ITAB1 BY T_DELNU T_SHIPNU T_EXTID .
          LOOP AT DATA_PACKAGE.
            READ TABLE ITAB1 WITH KEY T_DELNU = DATA_PACKAGE-/BIC/ZLBOL.
            IF SY-SUBRC = 0.
              EXIT.
            ENDIF.
            READ TABLE ITAB1 WITH KEY T_SHIPNU = DATA_PACKAGE-/BIC/ZLBOL.
            IF SY-SUBRC = 0.
              EXIT.
            ENDIF.
            READ TABLE ITAB1 WITH KEY T_EXTID = DATA_PACKAGE-/BIC/ZLBOL.
            IF SY-SUBRC = 0.
              EXIT.
            ENDIF.
            DELETE DATA_PACKAGE .
          ENDLOOP.
        ENDSELECT.
      ENDSELECT.
    Points will be awarded.
    Edited by: satish rajaram on Nov 6, 2008 4:51 PM
    Edited by: satish rajaram on Nov 7, 2008 11:40 AM
    Edited by: satish rajaram on Nov 7, 2008 11:43 AM

    The logic is if the key field of ODS2 is equal to either Key field 1 or Key field 2 or Key field 3 of ODS1 then that record from ODS2 has to be updated to the corresponding matching record of ODS1, else no update. The 3 key fields of ODS1 have different character length and character types and the key field of ODS2 has a different character length and type when compared to the any of the key fields of ODS2 can match any of those.
    Can you try below logic :
    Below is not code it needs to be manipulated as per requirement.
    ODS2 ---> ODS1
    SELECT <key fields of ODS1>
    FROM /BIC/A<ODS1>00
    INTO ITAB
    FOR ALL ENTRIES IN DATA_PACKAGE
    WHERE
    keyfield1 = data_package-key1
    or
    keyfield2 = data_package-key2
    or
    keyfield3 = data_package-key3
    **Now itab has all entries which neednot be deleted from data_package.****
    if sy-subrc=0.
    ***Check Itab and delete only those records not present in itab from data_package****
    endif.
    Hope this helps.

  • ESS Working Time - Start Time  and End Time in Weekly View

    Hello,
    I'm having a problem with the business package ESS - functionality Working Time (cat2).
    I need that information to Start Time and End Time appear in the Weekly View of the portal.
    In Daily View that information are already visible, but In Weekly View that information does not appear.
    Does anyone have any suggestions?
    Thank you very much your attention.
    Att,
    Jair de Oliveira Junior

    Hi Bala
    You can have clock in and clock out in a weekly view.
    you have to change the data entry profile settings.
    In general settings tab in data entry profile click the with clock times button and maintain the Period type to 02 in time settings tab.
    And you can view the weekly entry in clock in and clock out.
    Ravee
    +91.99206.33669

  • Deleting  rows with missing values in field in start routine of update rule

    Hello experts,
    how can I delet rows with missing values in a specific field in the start routine of update rules?
    I think ABAP code should look something like this:
    delete ...  from DATA_PACKAGE where Z_NO = ''.
    thanks in advance for any suggestions!
    hiza

    Write:
    delete data_package where field = value.
    Hope it helps.
    Regards

  • In SharePoint Calendar lists, fields [Start Time] and [End Time] do not exist at the Site Column level.

    <header style="box-sizing:border-box;color:#777777;line-height:1;font-size:13px;padding-right:46px;margin-bottom:3px;font-family:'Helvetica Neue', arial, sans-serif;">
    </header>
    I'm doing SP app development and have the following problem.
    I need to check Start time and End Time in SharePoint Calendar using CAML query and then add a new event to Calendar list using the Start time and End Time that user has entered in 2 datapickers
    in the form.
    function AddCalendarListItems() {
    var SD = document.getElementById("datepicker1").value;
    var SThh = document.getElementById("St1").value;
    var STmm = document.getElementById("St2").value;
    var ED = document.getElementById("datepicker2").value;
    var EThh = document.getElementById("Et1").value;
    var ETmm = document.getElementById("Et2").value;
    var T = document.getElementById("Title").value;
    var S1 = SThh;
    SD = SD.slice(6, 10) + "-" + SD.slice(0, 2) + "-" + SD.slice(3, 5) + "T" + SThh + STmm + ":00Z";
    ED = ED.slice(6, 10) + "-" + ED.slice(0, 2) + "-" + ED.slice(3, 5) + "T" + EThh + ETmm + ":00Z";
    //alert("SD= " + SD + " , ED= " + ED);
    var siteUrl = SiteCollurl + "/SharePointApp11";
    var clientContext = new SP.ClientContext(siteUrl);
    var oList = clientContext.get_web().get_lists().getByTitle('Calendar');
    var ListItemCInfo = new SP.ListItemCreationInformation();
    var newEvent = oList.addItem(ListItemCInfo);
    newEvent.set_item("Title", T);
    newEvent.set_item("EventDate", SD);
    newEvent.set_item("EndDate", ED);
    newEvent.update();
    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQueryAddCalendarSucceeded2), Function.createDelegate(this, this.onQueryAddCalendarFailed2));
    function onQueryAddCalendarSucceeded2(sender, args) {
    alert("Success");
    function onQueryAddCalendarFailed2(sender, args) {
    alert('Add new item to the calendar failed. ' + args.get_message() + '\n' + args.get_stackTrace());
    But I receive the following error:
    Add new item to the Calendar failed. Column 'Start time' does not exist. It may have been deleted by another user.
    I've checked and 'Start time' does exist. So it seems in SharePoint Calendar lists, field [Start Time] and [End Time]  exist but do not exist at the Site Column level.
    Please advise.

    Hi Khojasteh,
    Use “EventDate” for Start Time field, and “EndDate” for End Time field. They are the internal name of the two fields, you can check it in the column settings page url like “Field=EndDate”.
    If it isn’t the issue, please debug the code, in which line the error occurs.
    Thanks,
    Qiao
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Qiao Wei
    TechNet Community Support

  • Hide the start time and end time in ESS portal

    Experts,
    We have a requirement to hide the Start time and End time on the header section of the travel request / expense sheet in the ESS portal.  I have searched through the configuration and found several place to hide the start time and end time of segment yet these have no impact on the porta start and end time fields.
    Please Advise.
    Best Regards,
    Martin Weakley

    Hi Martin,
    you can achieve this with administrative personalisation. In portal content navigate to the role where you deltalinked your iView, click "preview". When a new Window for the preview is opened, notice the URL contains "&sap-config-mode=true". Now right click on the fields you want to hide and choose "enter configuration" (or the like, wording is not exact) from the context menue. The WD-UI-Element tree opens where you can directly hide/customize properties of the WD. When clicking save+exist you can also transport the alterations you did.
    maybe this helps or gives you a helpful alternative to the already stated measures in this thread
    regards, Lukas

  • How to activate fields "Start Reason" and "End Reason" in "Contact" form?

    Hello all,
    We recently migrated HRMS from version 11.5.7 to *12.1.3*. In the previous version users filled the fields Start Reason and End Reason in the Contact form (PERWSDPC), section Contact Relationship.
    In our 12.1.3 version these fields are read-only and I can not figure out how to activate them.
    PS: I have populated the list of values that should be used in the above fields, using the form Life Event Reasons (Total Compensation: General Definitions: Additional Setup: Life Event Reasons) and setting the Type field value with Personal, but I don't know how activate the fields in Contact form.
    Any suggestions?
    Thanks
    Paolo Bertinetto
    Edited by: user3312880 on 7-gen-2013 2.11

    But in addition to entering values in *Life Event Reasons" form, there are other setup steps that have to be performed in order to use the two above fiields?                                                                                                                                                                                                                                                                                                                           

  • Enter start time and end time of inspection

    Dear all
    Plz tell me where we can enter start time and end time of inspection.
    Regards
    Nirmala

    Hi Nirmala,
    I think Inspection start time is not required for any analysis or else. Days taken for closing lots are important than time. Any how, the stock posted or Inspection completed time is already available in Stock posting log - transaction QA33.
    In transaction QA33,
    1. Input Material, Plant & Period etc
    2. Select a lot (UD made)
    3. Select Usage decision tab
    4. Select Stock posting tab
    5. Select Stock posting log in the tab(header) - here your inspection completed (UD) time is getting stored
    Further issue, pls reply.
    VRMP.

  • How to know the process chain start time and end time

    Hi Experts,
                   How to know the process chain start time  and end time .
    Thanks in advance
    Regards
    Gutti
    Edited by: guttireddy on Feb 23, 2012 11:30 PM

    Hi Reddy,
    You may find the run time of a PC using below steps.
    1. Call SE38 > /SSA/BWT > Execute  > Enter your PC , choose the date and time > Execute. Here Run-time of a PC is displayed. (or)
    2. Call RSPC1 > Enter your PC > Execute > Goto Log view > Right click on the start Variant > Displaying Messages > Note down the start time in Chain Tab. Now Right click on the last Process type of the PC > Displaying Messages > Note down the End time in Chain Tab. The Difference b/w start time and end time gives the Run-time of your PC.
    Hope this helps.
    Regards
    Sai

  • HT2513 iCal string of events repeat and end on a given date?

    Is there a way to have any given string of events repeat and end on a given date?
    Example, I have a different training regiment for each day leading up to an event/date and then will have the same training regiment again leading up to another event. I want each day's training regiment to show up as an event per day... but don't want to have to post each days repeat string of training prior to each event... and they don't nessecarily repeat monlthy or regularly... I want to set an end date and all the training fill in from that date backwards. Is this possible??

    Does this work any better? New-jobtrigger requires a datetime object.
    $csv6=Import-Csv D:\Lzero\Coll_Schd\Dependent_List.csv
    foreach($cs in $csv6)
    {$sys=$cs.CI
    [datetime] $schd=$cs.RebootSchedule
    $user="Domain\username"
    $paswd=ConvertTo-SecureString -String "P@ssWord" -AsPlainText -Force
    $Credential=New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$paswd
    Register-ScheduledJob -Name System_Restart -ScriptBlock {
    Restart-Computer -ComputerName $sys -Force -wait} -Trigger (New-JobTrigger -At $schd -Once) -ScheduledJobOption (New-ScheduledJobOption -RunElevated) -Credential $Credential

  • Help needed on start routines in update rules

    Hi All,
    I want to extract data from two data sources(For ex 2LIS_02_HDR, 2LIS_02_ITM).
    I am using 2 first layer ODS' and one second layer ODS for consolidation.I want to write a start routine in the update rules so that the data of the MATNR(Material Number) field from 2LIS_02_ITM will be populated in the second layer ODS when the keys (EBELN) of the datasources are equal in the first layer ODS'.
    Can anyone send me the code for this requirement?
    Thanks in Advance,
    Sanjana.

    i am assuming u have a direct transformation with 2lis_02_hdr
    and u want to look up on the DSO of 2lis_02_ITM to get the material.
    MATNR = 0material
    EBELN = 0docnum.
    put this code in the start routine of the transformation of 2lis_02_HDR.
    TYPES: BEGIN OF s_itm,
                material TYPE /bi0/oimaterial,
                docnum TYPE /bi0/oidocnum,
                END OF s_itm.
        DATA: wa_itm TYPE s_itm,
              t_itm TYPE STANDARD TABLE OF s_itm.
    LOOP AT DATA_PACKAGE.
            SELECT material
                          docnum
            FROM /bic/aDSO_itm
       APPENDING TABLE t_itm
       WHERE docnum = <comm_structure>-docnum.
    endloop.
    IF NOT t_itm[] IS INITIAL.
          SORT t_itm ASCENDING BY docnum.
         DELETE ADJACENT DUPLICATES FROM t_itm      COMPARING docnum.
         ENDIF.
    Now write this below code in the update routine of 0material in the transformation from 2lis_2_HDR.
    CLEAR RESULT.
    READ TABLE T_itm INTO WA_Itm WITH KEY
          DOCNUM  = comm_structure-docnum.
    BINARY SEARCH.
    IF SY-SUBRC = 0.
      RESULT = WA_itm-material.
    ENDIF.

  • Start routine for  Update Rules

    I need to write a start routine for the update rules for an DSO with main idea as follows:
    I must compare the record that comes from the infopackage with the record that's already in my DSO. If the X date for the same 0PM_ORDER is the same as one in my DSO - do nothing
    If the X date is previous to the X date in my DSO for the same 0PM_ORDER - the new record must be created and at the same time all the records with subsequent(later) X dates for this 0PM_ORDER must be deleted.
    If the X date is later than the X date in my DSO for the same 0PM_ORDER - the new record must be created.

    Hi,
    Find the below code.
    DATA: BEGIN OF ITAB1,
    ZDATE TYPE /BIC/DATE
    END OF ITAB1.
    SELECT zdate FROM /BI0/QEMPLOYEE INTO corresponding
    fields
    of ITAB1 where employee = SOURCE_FIELDS-EMPLOYEE.
    IF ITAB1-ZDATE COMMUNICATE_STRUCT-DATE
    RESULT = ITAB1-CLM_IPAA.
    ENDIF.
    ENDSELECT.
    There will be an table for each DSO if you go for an manage DSO you will get three table i.e New,Active and Change Log take Active tables date field and compare with the communication structure that comes to routine.
    The above example is just an example table will be different from DSO to DSO.
    Let me know your thoghts.
    Regards,
    Shivu.

  • Start Routine in Update Rule

    I want to replace all '# ' values showing up in a report with  space. For this I plan to write a Start Routine in the Update Rules which should scan all the data coming in into the cube and replace all  null or '' with space.
    What is the best way to write this routine. It should check all data in all the fields of the data load coming in.
    Thanks

    Hi,
         The space is shown as # in the BW Reports, to confirm check the value in the cube for this field, so
          you need to change that to some other character like X or Y or explain your end users that SAP
          designates a space as # and it will be displayed that way in the reports.
    Regards,
    Raj

  • Start routine internal table data  is inaccessible.

    Hi Guru,
    I have written a small code in start routine  using internal tables. The internal table has 4 fields. Intially first 3 fields are populated from ods for only the records in the data package. Then the 4th field is modified using loop on internal table. Then a sort is done on internal table  and deleting the adjacent records. Now the data is read from internal table in updates rules. But data is not populating for the fields in listcube. I guess the loop on internal table is not modifying the internal table, below is the code.
    Types: BEGIN OF ITAB1,
    doc_no LIKE /BIC/AZFGLO10100-AC_DOC_NO,
    item_no LIKE /BIC/AZFGLO10100-ITEM_NUM,
    taxjur LIKE /BIC/AZFGLO10100-TAXJURCODE,
    z_len TYPE I,
    END OF ITAB1.
    DATA ITAB_01 TYPE TABLE OF ITAB1 WITH HEADER LINE.
    DATA LEN TYPE I.
    DATA: str1 TYPE string,
    str2 TYPE string,
    doc like /BIC/AZFGLO10100-AC_DOC_NO,
    item like /BIC/AZFGLO10100-ITEM_NUM,
    jur like /BIC/AZFGLO10100-TAXJURCODE.
    ***filling the internal table with the contents of
    select AC_DOC_NO ITEM_NUM TAXJURCODE into
    corresponding fields of itab_01
    from /BIC/AZFGLO10100
    FOR ALL ENTRIES IN DATA_PACKAGE
    WHERE AC_DOC_NO = DATA_PACKAGE-AC_DOC_NO
    AND ITEM_NUM = DATA_PACKAGE-ITEM_NUM.
    endselect.
    SORT ITAB_01 ASCENDING BY doc_no ITEM_NO ASCENDING.
    loop at itab_01.
    doc = itab_01-doc_no.
    item = itab_01-item_no.
    TAX = itab_01-taxjur.
    len = STRLEN(tax).
    itab_01-z_len = len.
    modify itab_01 transporting z_len where
    doc_no = doc and item_no = item.
    ENDLOOP.
    ***what I am doing here I am keep only the records in itab which has minimum
    tax jurisdiction length for a line item in a document*****
    SORT ITAB_01 DESCENDING BY doc_no z_len ASCENDING.
    DELETE ADJACENT DUPLICATES FROM itab_01 comparing doc_no.
    and for zlenght object I am writing the followoing code in update rules.
    read table itab_01 with key doc_no = COMM_STRUCTURE-AC_DOC_NO
    BINARY SEARCH.
    if sy-subrc = 0.
    RESULT = itab_01-z_len.
    endif.
    But the field z_len field is blank for all fields.
    Any help is really appreciated.
    Thanks,
    Raj

    hi Ravi,
    try to give same field name in internal table and /BIC/AZFGLO10100, change the code accordingly
    Types: BEGIN OF ITAB1,
    <b>AC_DOC_NO</b> LIKE /BIC/AZFGLO10100-AC_DOC_NO,
    <b>ITEM_NUM</b> LIKE /BIC/AZFGLO10100-ITEM_NUM,
    <b>TAXJURCODE</b> LIKE /BIC/AZFGLO10100-TAXJURCODE,
    z_len TYPE I,
    END OF ITAB1.
    DATA ITAB_01 TYPE TABLE OF ITAB1 WITH HEADER LINE.
    ***filling the internal table with the contents of
    select AC_DOC_NO ITEM_NUM TAXJURCODE into
    <b>corresponding fields</b> of itab_01
    from /BIC/AZFGLO10100
    FOR ALL ENTRIES IN DATA_PACKAGE
    WHERE AC_DOC_NO = DATA_PACKAGE-AC_DOC_NO
    AND ITEM_NUM = DATA_PACKAGE-ITEM_NUM.
    endselect.
    <b></b><b></b>

Maybe you are looking for