PO Confirmation with Delivery Date Validation Check

Dear Experts,
We have requirement in SNC to restrict PO confirmation within a agreed Delivery Date tolerance. This Delivery date validation should work similar to the Quantity validation we have in SAP standard through the PO_ITMUNDERDELIVERY/ PO_ITMOVERDELIVERY validation profiles.
So the business wants that the Suppliers can only Confirm a PO when the Delivery date in the confirmation is within agreed tolerance (-5 / +1 day ) of the requested delivery date.
Can you please let us know if there is some standard way through configurations to achieve this. I looked for validation profiles available for delivery date, but could see only for Quantity validations.
Another option we looked for was to have a Z Table to store this Delivery date tolerance (-5/+1 days), and implement the BAdi /SCMB/BOL_VALFRMWRK to achieve through custom developments.
Please let me know what solution options we can have for this requirement, as it is urgent.
Thanks & Regards.
Shiv.

Hi Shiv,
I think there is no need for Z-customization and you can achieve this standard way only thing you have maintained OWN validation:
After below setting whenever Supplier try to give confirmation which is out side tolerance then system won't allow him to save the confirmation and if supplier is EDI which sends ROC_IN confirmation XML will fail in SNC (You can see that XML in SXI_MONITOR tcode in SNC).
SPRO>Supply Network Collaboration>Basic Settings> Validation>Own Settings-->Maintain Settings in Validation Profiles
And maintain below setting
Profile:POC3
Val.Check:PO_ACCEPTED_CONF_PUBLISH     
Status:Active 
Msg.Type:E(Error )
Save Mode:DO Not Save message
Continuation mode:Discontinue checks
Checked
Checked
1-Error
Profile:POC8
Val.Check:PO_ACCEPTED_CONF_PUBLISH     
Status:Active 
Msg.Type:E(Error )
Save Mode:DO Not Save message
Continuation mode:Discontinue checks
Checked
Checked
1-Error
If you want alert whenever PO confirmation is not within tolerance activate the alert type 7035
Path:SPRO>Supply Network Collaboration>Exceptions>Alert Type Activation>Activate Alert Types
Alert type=7035
History=<Blank>leave this entry blank.
save this entry.
If you want receive alert as email then maintain email alert notification:
See the below link:
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/8009bba5-7806-2d10-0b80-fa26d8bcb07c?QuickLink=index&overridelayout=true
In the above link you need to change alert type from 7051 to 7035.
Regards,
Nikhil

Similar Messages

  • Order confirmation with delivery date in past

    Hello everybody,
    In the SNC portal, we have a lot of old Purchase order which are not confirmed, and when we try to confirmed them, we have the error below :
    Order XXXXXXXX, item 00010, schd. line 0000000002: delivery date lies in past
    My client wish create a super user (admin ?) who can confirmed a Purchase Order item with a delivery date in past (for example 06/08/2011).
    Is it possible to create such profiles? If so how to configure it in SNC.
    Are there other solutions ?
    Thank you very much for your help.
    Stéphane.

    Hi Stéphane,
    Normally in a standard SAP settings Purchase order confirmation in past gives warning message but you can have PO confirmation in past from warning to error or Information.
    Go to SPRO>Supply Network Collaboration>Basic Settings>Validation>Own Settings-->Maintain Settings in Validation Profiles
    Maintained below setting if you want message as information (No error or warning message)
    Profile:POC2
    Validation check:PO_DELVRY_DATETIME_IN_PAST
    Msg.Type:I
    Save Mode:Save Message as Valid
    Continuation Mode:Continue checks
    Profile:POC3
    Validation check:PO_DELVRY_DATETIME_IN_PAST
    Msg.Type:I
    Save Mode:Save Message as Valid
    Continuation Mode:Continue checks
    Maintained below setting if you want message as error
    Profile:POC2
    Validation check:PO_DELVRY_DATETIME_IN_PAST
    Msg.Type:E
    Save Mode:DO not Save Message
    Continuation Mode:Discontinue checks
    Profile:POC3
    Validation check:PO_DELVRY_DATETIME_IN_PAST
    Msg.Type:E
    Save Mode:DO not Save Message
    Continuation Mode:Discontinue checks
    Maintained below setting if you want message as warning
    Profile:POC2
    Validation check:PO_DELVRY_DATETIME_IN_PAST
    Msg.Type:W
    Save Mode:Save Message as Valid
    Continuation Mode:Continue checks
    Profile:POC3
    Validation check:PO_DELVRY_DATETIME_IN_PAST
    Msg.Type:W
    Save Mode:Save Message as Valid
    Continuation Mode:Continue checks
    Above setting is a generic setting for all user and If you need User specific setting then it is a customization required.
    Regards,
    Nikhil

  • Order with delivery date always on perticular day

    Hi,
    My clients requirement is
    orders should always be ordered with delivery date Tuesdays for one sales organisation say X.
    planning calender wont work here because in order confirmed delivery date calculate with many criteria taking into
    consideration.
    then How to customize user's this perticular requirement?
    regards,
    Anup

    Hi anup12         
    Go to T.Code VOV8 & select your Sales  document type.In Requested delivery date mention the Lead time in days as 1 & save it
    --Raise sales order in VA01 & enter the material & check the requested delivery date.
    Let me know if your problem is solved
    Regards
    Pradeep

  • Load a sales order with delivery date in the past

    Hi,
    We want to load in the system a sales order with delivery date in the past, and maintain the schedule delivery date in the past. To do that, in the customizing Sales And Distribution / Basic Functions / Delivery Scheduling and Transportation Scheduling / Define Scheduling By Sales Document Type, I selected the flag Blackwards. But the problem is that the rest of the dates in the scredule line: goods issue date, loading date, material avail.date and transportation Plan Date, are in blank and you cannot enter any data because the system deletes it.
    How can I have these dates informed with dates in the past?
    Thanks in advance,

    You can control this using the "Message Control" in the SAP IMG.
    Supplier Relationship Management>SRM Server>Cross-Application Basic Settings>Message Control>Influence Message Control
    Using this you convert Error to Warning or even swith off this message.
    Please refer this thread for complete steps:
    Re: How to change an error message to a warning message in SRM
    Note: you need to suppress the messages relevant to your case here.
    Regards
    Kathirvel

  • For Dynamic Credit Check replacing Material Availability date with Delivery date

    Hi All,
    Our client has this requirement, where they want to change the standard SAP functionality which Checks whether a schedule line item in a sales order is with in horizon or not based on "Material Availability Date" VBEP-MBDAT. They want in place of this Delivery date of schedule line should be used i.e. VBEP-EDATU. I did some research and found out that this could be done technically by updating the BADI "BADI_SD_CM".
    Now we are stuck as to what needs to be changed? has anybody worked on this kind of requirement before?
    Please share your past experience.
    Thanks and Regards,
    Prateek Maheshwari.

    As you know, VBELN-Currency-POSNR-ETENR-MBDAT is standard exposure key of sales order but my ex-colleague changed it into VBELN-Currency-POSNR to compress exposure data for certain CCA.
    In this case, of course, that CCA should meet some biz requirements(User-exit. etc) like no partial delivery. etc.... for integrity of exposures..
    This case is different because you want to change value of key....and it's Date!!!!
    Anyway I think it's techinically possible but it's very risky in live system because existing exposures would be not removed even if delivered, changed, deleted or blocked.
    So you have to delete all exposures and rebuild after program changed.
    I'm writing it's possible now but I refused when my customer want to change it because I don't have any way to rebuild huge data in live system.

  • Trouble with a data validating loop.

    So I tried to make a data validation loop to make sure no single number in an array are the same.
    At first I thought it was working fine, but after the sixth test, I noticed I had two of the number "5".
    Based on looking at my code, it seems like it could work, but I could not be seeing something significant.
    Anyone have any advice or suggestions?
    Oh and also, MAX_PICK is a static final int set to 47
    picks[0] = randomNumbers.nextInt(MAX_PICK);
    picks[1] = randomNumbers.nextInt(MAX_PICK);
    picks[2] = randomNumbers.nextInt(MAX_PICK);
    picks[3] = randomNumbers.nextInt(MAX_PICK);
    picks[4] = randomNumbers.nextInt(MAX_PICK);
    while(!valid)
         for(int i=0;i<=4;i++)
             if     (picks[i] == picks[0] ||
                  picks[i] == picks[1] ||
                  picks[i] == picks[2] ||
                  picks[i] == picks[3] ||
                  picks[i] == picks[4])
                       picks[i] = randomNumbers.nextInt(MAX_PICK);
             valid = true;
    }One thing I just noticed is also, lets say i = 4 and when it compares picks[i] to picks[4] , it will go in the statement anyway, causing it to change picks[4] to another number which could by chance be the same as picks[3]. Is there a way around this? I was thinking about maybe a while loop with the condition the if statement has, but then the loop would run forever. Any insight?
    Much Appreciated.

    * Created on 2007&#24180;10&#26376;10&#26085;
    * To change the template for this generated file go to
    * Window>Preferences>Java>Code Generation>Code and Comments
    import java.util.*;
    public class MyRan {
         static int picks[];
    public static void main(String args[]) {
         int MAX_NUM = 5;
         picks = new int[5];
         Random generator2 = new Random( System.currentTimeMillis() );
         //                    picks[j] = generator2.nextInt(MAX_PICK+1);
         System.out.println("======");
         for(int i=0;i<=4;i++)
         picks[i] = generator2.nextInt(MAX_NUM)+1;
         while(!check(picks))        
                for (int i=0; i<5; i++)
                      for (int k=0; k<5; k++)
                            if (i!=k)
                                 boolean genSuccess = false;
                                 if (picks==picks[k])
                                  while (!genSuccess)
                                       picks[k] = generator2.nextInt(MAX_NUM)+1;
                                       if (picks[i]!=picks[k])
                                            genSuccess = true;
         for (int i=0; i<5; i++) {
              System.out.println(picks[i]);
    public static boolean check(int input[])
         int duplicateCount = 0;
         for (int i=0; i<input.length; i++)
              for (int k=0; k<input.length; k++)
                   if (i!=k)
                        if (input[i]==input[k])
                             duplicateCount++;
         if (duplicateCount>0)
              return false;
         else
              return true;

  • Issue with delivery date in schedule line ??

    Dear Members,
    I have created a sales order on 05/18/2009.I am getting delv date on schedule line as 06/12/2009, due to this problem, I am unable to create a delv. What should I do now ?/
    I have checked the availbility of material and material is available on 05/18/2009.
    Also Checked on config of order type in V0V8 T-code, and lead time in not maintained.
    please let me know, where should I check.
    Thank you.
    Madhu

    hello, friend.
    on the schedule lines tab, try changing the date to the present and see if delivery can be confirmed.  another way is to run the "check item availability" functionality in the sales order.
    on the document header, check what date is being proposed for "Requested Delivery Date".  this date could be proposed based on settings for the document type.  but since you indicated that there was no lead time maintained, you will have to check lead times in:
    1.  the shipping point (deliveries processing, picking, packing, etc.)
    2.  in the MRP views of the material master
    3.  transportation lead times (routes, etc.)
    4.  if externally procured, purchasing lead times
    hope this helped you.
    regards.

  • Problem in BAPI_PO_CREATE1 with delivery date option

    Hi Experts,
    I'm using BAPI_PO_CREATE1 for uploading user excel file to create purchase orders.
    The issue is PO is created successfully but the delivery date is not picking properly. System is picking some other delivery date.
    Can any one help me out from this?????????
    Any USEFUL INPUTS for solving this issue will be rewarded.
    Code :
    REPORT zmm_bapi_po_create.
    *                             ''~``
    *                            ( o o )
    *    +------------------.oooO--(_)--Oooo.------------------+
    *    | ZMM_BAPI_PO_CREATE -To create Purchase orders       |
    *    |                                                     |
    *    |                    .oooO                            |
    *    |                    (   )   Oooo.                    |
    *    +---------------------\ (----(   )--------------------+
    *&    Program Name     : ZMM_BAPI_PO_CREATE
    *&    Transaction Code :
    *&    Module Name      : MM
    *&    Developer        : Lakshmiraj.A
    *&    Functional       : Xavier
    *&    Transport Request:
    *&    Program Type     : Report
    *&    SAP Release      : 46C
    *&****************************REVISION LOG*****************************
    *&  Log     Date         Author              Description
    *&------------------------ TABLE USED --------------------------------*
    *&---------------------- VARIABLE DECLARATION ------------------------*
    *  For Storing file name.
    DATA  : filename1 TYPE string.
    *  Flag to identify the matching entries
    DATA  : flag(1).
    *  For Display Message
    DATA  : g_msg(80) TYPE c.
    *  Declaring that as a character with length 4096.
    TYPES truxs_t_text_data(4096) TYPE c OCCURS 0. "  Type Group : TRUXS
    *  Containing RAW Data
    DATA : it_raw TYPE truxs_t_text_data.
    *&------------------------- INTERNAL TABLE ---------------------------*
    DATA: gstest LIKE bapimepoheader.
    DATA: g_ebeln LIKE bapimepoheader-po_number.
    DATA: BEGIN OF g_bapimepoheader OCCURS 0.
            INCLUDE STRUCTURE bapimepoheader.
    DATA: END OF g_bapimepoheader.
    DATA: BEGIN OF g_bapimepoheaderx OCCURS 0.
            INCLUDE STRUCTURE bapimepoheaderx.
    DATA: END OF g_bapimepoheaderx.
    DATA: BEGIN OF g_bapimeposchedule OCCURS 0.
            INCLUDE STRUCTURE bapimeposchedule.
    DATA: END OF g_bapimeposchedule.
    DATA: BEGIN OF g_poschedulex OCCURS 0.
            INCLUDE STRUCTURE bapimeposchedulx.
    DATA: END OF g_poschedulex.
    *DATA: BEGIN OF g_bapieikp OCCURS 0.
    *        INCLUDE STRUCTURE bapieikp.
    *DATA: END OF g_bapieikp.
    DATA: BEGIN OF g_bapimepoitem OCCURS 0.
            INCLUDE STRUCTURE bapimepoitem.
    DATA: END OF g_bapimepoitem.
    DATA: BEGIN OF g_poitemx OCCURS 0.
            INCLUDE STRUCTURE bapimepoitemx.
    DATA: END OF g_poitemx.
    DATA: BEGIN OF g_bapiret2 OCCURS 0.
            INCLUDE STRUCTURE bapiret2.
    DATA: END OF g_bapiret2.
    DATA: BEGIN OF itab OCCURS 0,
    doc_type       LIKE    bapimepoheader-doc_type,
    vendor         LIKE    bapimepoheader-vendor,
    purch_org      LIKE    bapimepoheader-purch_org,
    pur_group      LIKE    bapimepoheader-pur_group,
    comp_code      LIKE    bapimepoheader-comp_code,
    incoterms1 LIKE bapimepoheader-incoterms1,
    incoterms2 LIKE bapimepoheader-incoterms2,
    po_item        LIKE    bapimepoitem-po_item,
    material       LIKE    bapimepoitem-material,
    short_text     LIKE    bapimepoitem-short_text,
    quantity       LIKE    bapimepoitem-quantity,
    plant          LIKE    bapimepoitem-plant,
    delivery_date  LIKE    bapimeposchedule-delivery_date,
    END OF itab.
    DATA: it_itab LIKE itab OCCURS 0 WITH HEADER LINE.
    *&------------------------ SELECTION SCREEN --------------------------*
    SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE text-100.
    PARAMETERS : p_file LIKE rlgrap-filename.
    SELECTION-SCREEN END OF BLOCK blk.
    *&-----------------------AT SELECTION SCREEN -------------------------*
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    * For getting input filename
      PERFORM get_filename.
    *&-----------------------START OF SELECTION---------------------------*
    START-OF-SELECTION.
    * Open the Excel file and Update with the internal table
      PERFORM update_inttable.
      PERFORM bapi_upload.
    *       FORM bapi_upload                                              *
    FORM bapi_upload.
      it_itab[] = itab[].
      SORT itab BY vendor material.
      DELETE ADJACENT DUPLICATES FROM itab COMPARING vendor.
      LOOP AT itab.
        g_bapimepoheader-comp_code = itab-comp_code.
        g_bapimepoheader-doc_type = itab-doc_type.
        g_bapimepoheader-creat_date = sy-datum.
        g_bapimepoheader-created_by = sy-uname.
        g_bapimepoheader-vendor = itab-vendor.
        g_bapimepoheader-purch_org = itab-purch_org.
        g_bapimepoheader-pur_group = itab-pur_group.
        g_bapimepoheader-incoterms1 = itab-incoterms1.
        g_bapimepoheader-incoterms2 = itab-incoterms2.
        APPEND g_bapimepoheader.
        g_bapimepoheaderx-comp_code = 'X'.
        g_bapimepoheaderx-vendor = 'X'.
        g_bapimepoheaderx-doc_type = 'X'.
        g_bapimepoheaderx-purch_org = 'X'.
        g_bapimepoheaderx-pur_group = 'X'.
        g_bapimepoheaderx-incoterms1 = 'X'.
        g_bapimepoheaderx-incoterms2 = 'X'.
        APPEND g_bapimepoheaderx.
        LOOP AT it_itab WHERE vendor = itab-vendor.
          MOVE-CORRESPONDING it_itab TO g_bapimepoitem.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
               EXPORTING
                    input  = it_itab-material
               IMPORTING
                    output = it_itab-material.
          g_bapimepoitem-material = it_itab-material.
          APPEND g_bapimepoitem.
          g_poitemx-po_item = it_itab-po_item.
          g_poitemx-po_itemx = 'X'.
          g_poitemx-item_cat = 'X'.
          g_poitemx-plant = 'X'.
          g_poitemx-stge_loc = 'X'.
          g_poitemx-net_price = 'X'.
          g_poitemx-acctasscat = 'X'.
          g_poitemx-material = 'X'.
          g_poitemx-short_text = 'X'.
          g_poitemx-matl_group = 'X'.
          g_poitemx-quantity = 'X'.
          g_poitemx-po_unit = 'X'.
          g_poitemx-orderpr_un = 'X'.
          g_poitemx-trackingno = 'X'.
          g_poitemx-delete_ind = 'X'.
          APPEND g_poitemx.
          g_bapimeposchedule-po_item = it_itab-po_item.
          g_bapimeposchedule-sched_line = '001'.
          g_bapimeposchedule-del_datcat_ext = 'X'.
          g_bapimeposchedule-delivery_date = it_itab-delivery_date.
          g_bapimeposchedule-quantity = it_itab-quantity.
          APPEND g_bapimeposchedule.
          g_poschedulex-po_item = it_itab-po_item.
          g_poschedulex-sched_line = '001'.
          g_poschedulex-po_itemx = 'X'.
          g_poschedulex-sched_linex = 'X'.
          g_poschedulex-del_datcat_ext = 'X'.
          g_poschedulex-delivery_date = 'X'.
          g_poschedulex-quantity = 'X'.
          g_poschedulex-deliv_time = 'X'.
          g_poschedulex-stat_date = 'X'.
          APPEND g_poschedulex.
        ENDLOOP.
        CALL FUNCTION 'BAPI_PO_CREATE1'
             EXPORTING
                  poheader         = g_bapimepoheader
                  poheaderx        = g_bapimepoheaderx
             IMPORTING
                  exppurchaseorder = g_ebeln
                  expheader        = gstest
             TABLES
                  return           = g_bapiret2
                  poitem           = g_bapimepoitem
                  poitemx          = g_poitemx
                  poschedule       = g_bapimeposchedule
                  poschedulex      = g_poschedulex.
        IF NOT g_ebeln IS INITIAL.
          COMMIT WORK.
          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
               EXPORTING
                    wait = ''.
          REFRESH : g_bapimepoitem,
                    g_bapimepoheader,
                    g_bapimepoheaderx,
                    g_bapiret2,
                    g_poitemx,
                    g_bapimeposchedule,
                    g_poschedulex.
        ENDIF.
      ENDLOOP.
    ENDFORM.
    *       FORM GET_FILENAME                                             *
    FORM get_filename.
      CALL FUNCTION 'F4_FILENAME'
           EXPORTING
                program_name  = sy-cprog
                dynpro_number = sy-dynnr
                field_name    = ''
           IMPORTING
                file_name     = p_file.
    ENDFORM.
    *       FORM UPDATE_INTTABLE                                          *
    FORM update_inttable.
      REFRESH : itab[] , itab.
      CLEAR : itab.
      IF NOT p_file IS INITIAL.
        CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
         EXPORTING
    *     I_FIELD_SEPERATOR         =
           i_line_header            =  'X'
           i_tab_raw_data          =  it_raw         "  WORK TABLE
           i_filename               =  p_file
         TABLES
           i_tab_converted_data     = itab[]    "  ACTUAL DATA
         EXCEPTIONS
           conversion_failed        = 1
           OTHERS                   = 2.
        IF sy-subrc NE '0'.
          PERFORM callerr USING 'File Error!'.
          STOP.
        ENDIF.
      ELSE.
        PERFORM callerr USING 'Choose the file'.
        STOP.
      ENDIF.
    ENDFORM.
    *       FORM CALLERR                                                  *
    *  -->  TEXT                                                          *
    FORM callerr USING text TYPE string.
      CALL FUNCTION 'FC_POPUP_ERR_WARN_MESSAGE'
           EXPORTING
                popup_title  = 'ZMM_BAPI_PO_CREATE'
                is_error     = 'X'
                message_text = text
                start_column = 30
                start_row    = 8.
    ENDFORM.
    Regards
    ~Lakshmiraj~

    Hi,
    1. In Which system you are trying to run this ????  Are you running in IDES or currently running system?
       The reason may be if you are running in IDES , the factory calender may not be correctly positioned.
    2. Also this error will occur at situations like....if your factory calendar will be of 2007 year....but the delievery date which you are giving is of 2008 . So error "delivery date exceeds factory calendar" occurs.
    Some useful info for you,
    Factory calander is must to run SAP. All the scheduling are calculated based on this only. You can define halidays for factory and assign to the calander. You can have 365 days calander / Sat& SU holiday calander or the holiday can be your wish.
    The T code is SCAL.  create holidays first. create holiday calendar and assign the holidays in holiday calendar. create factory calender and assign the holiday calendar in factory calendar.The Factory calendar is client specific
    Rgds,
    Lakshmiraj

  • Scheduling problem with delivery date in purch.req and requirement date

    Dear all,
    I have the problem, that the calculated delivery date in the purchase requisition does not correspond with the requiement date of the production or planned order.
    I would like to use planned delivery times in the material master.
    Example:
    Planned delivery time: 20 days
    Todays date 01.10
    Case 1)
    Requiement date of planned order 10.10
    Case 2)
    Requiement date of planned order 20.09
    This situation can happen in our envirnoment, as the engineering process still continues after start of production. In this case I would like to have the following result:
    Case 1)
    Delivery date is 10.10 minus the goods receipt time
    Case 2)
    Delivery date is day of MRP or one or two days more
    I made the setting that dates in the past are not allowed. This solves my first smal problem. I tried to set the scheduling margin key but these settings do not help me, as they are relevant for all materials. I need of course individual planned delivery dates per material.
    So, I want to change the standart MRP procedure that in the case of the "wished requirement date" not the calculated date is beeing taken, but the "wished date". Usually you receive an exeption for this case and you would need t solve this manually. But this we dont want to do.
    Can s.o. please help me? Thank you all very much, I really dont know what to do in this case.
    With best regards,
    Bjoern

    The question cannot be answerd by SAP standart as I see. We will go through a workaround.

  • Shopping Cart created with delivery date outside factory calendar

    The user specified 13.08.2207 as the delivery date.  The Cart was approved and converted to a Purchase Requisition.  Status is now 'error in process' and of course no Requisition exists in table EBAN.  We cannot change the Cart because it is approved.  What other options do we have?

    Hi,
    Please check OSS note 814100.
    Also you can maintain calendar in SPRO or transation SCAL
    And you can also use BBP_DOC_CHECK badi to implement your own logic.
    Kind regards,
    Yann

  • Quoatation with Delivery date

    Dear SAP Gurus,
    During Creation of Quotation  the system has to provide the delivery date of the material considering the PP Masters (Routing,).
    Thanks in advance..
    Rgds
    Deepak singhal

    Thanks for the feedback but there is one more issue when the PR was created on 14.01.2011 the Planned Deilvery time was showing as 30 days and the delivery date was showing as 14.01.2011 (date on which PR was created) . This is a PR with account assignment F where we could see in the order Planned Delivery time was showing as 30 days . My question is then why is the Delivery date in the PR line item showing as 14.01.2011 (date on which PR created) and not taking the Planned delivery time into consideration while calculating the Delivery date of the PR .
    Thanks

  • Report: PO with delivery date

    Hi friends,
    I want to see the purchase orders for which the delivery date is over but item is not supplied yet. Is there any standard report for this?

    Hi
    in SE16
    use table EKET
    U will get desired report as per requirement
    If u want modify report as per need..Go to setting>Format list>choose fields
    I hope u will get required info by this report
    Award point if usefull ans.
    Vishal...

  • Use BAPI_SALESORDER_CREATEFROMDAT2 with delivery date in Header

    Hi all,
    In my current project I try to use BAPI_SALESORDER_CREATEFROMDAT2 to create the SO ,
    I can create the SO without setting delivery date in header.
    but after I set the delivery date like following, the error message occured. Could someone help me?
    ORDER_HEADER_IN-REQ_DATE_H = '20110330'
    ORDER_HEADER_IN-DATE_TYPE = '1'
    I try to add the requirment delivery date in schedule line ,but fail too.
    ORDER_SCHEDULES_IN-REQ_DATE =  '20110405'
    ORDER_SCHEDULES_IN-DATE_TYPE =  '1'

    Nothing special,
    TYPE: e
    ID: V4
    NUMBER: 219
    MESSAGE :Sales document  was not changed
    I  try to see the log in ST22 too. but nothing in there.
    I also try to use BAPI_SALESORDER_SIMULATE to generat SO ITEM to fill
    the ORDER_ITEMS_IN (after some data formate translated) but, still got the same result.
    My codes in VS as following:
    when without delivery date setting, the SO is OK, So I belive the data transport is fine.
    The promble is mainly occur in BAPI.
                   IRfcFunction function = repo.CreateFunction("ZCMT_RFC_SO_CREATE2");
                    //importing parameter
                    IRfcStructure salehd = function.GetStructure("ORDER_HEADER_IN");
                    IRfcStructure salehdx = function.GetStructure("ORDER_HEADER_INX");
                    //Tables
                    IRfcTable returntable = function.GetTable("RETURN");
                    IRfcTable item = function.GetTable("ORDER_ITEMS_IN");
                    IRfcTable itemx = function.GetTable("ORDER_ITEMS_INX");
                    IRfcTable partner = function.GetTable("ORDER_PARTNERS");
                    IRfcTable schedule = function.GetTable("ORDER_SCHEDULES_IN");
                    IRfcTable schedulex = function.GetTable("ORDER_SCHEDULES_INX");
                    //IRfcTable condition = function.GetTable("ORDER_CONDITIONS_IN");   //commented
                    //IRfcTable conditionx = function.GetTable("ORDER_CONDITIONS_INX");   //commented
    //* Build order header
                    salehd.SetValue("DOC_TYPE", "ZOR");       
                    salehd.SetValue("SALES_ORG", "2011");    
                    salehd.SetValue("DISTR_CHAN", "01");     
                    salehd.SetValue("DIVISION","00");       
                    salehd.SetValue("REQ_DATE_H", "20110412");
                    salehd.SetValue("DATE_TYPE", "1");
                    salehd.SetValue("PURCH_NO_C", "test");       
                    salehd.SetValue("PRICE_DATE", "20110331");
                    salehd.SetValue("PMNTTRMS", "0002");       
                    salehdx.SetValue("UPDATEFLAG", "I");       
                    salehdx.SetValue("DOC_TYPE","X");       
                    salehdx.SetValue("SALES_ORG","X");    
                    salehdx.SetValue("DISTR_CHAN","X");     
                    salehdx.SetValue("DIVISION","X");       
                    salehdx.SetValue("REQ_DATE_H", "X");
                    salehdx.SetValue("DATE_TYPE", "X");
                    salehdx.SetValue("PURCH_NO_C", "X");       
                    salehdx.SetValue("PRICE_DATE", "X");
                    salehdx.SetValue("PMNTTRMS", "X");       
    //* Build order item(s) - Only 1 is used in this example
                    item.Append();
                    item[0].SetValue("ITM_NUMBER", "000010");       
                    item[0].SetValue("MATERIAL", "HMS690C-T002-A1");       
                    item[0].SetValue("PLANT", "2011");      
                    item[0].SetValue("TARGET_QTY", "3.000");      
                    item[0].SetValue("SALES_UNIT", "PCS");      
                    itemx.Append();
                    itemx[0].SetValue("UPDATEFLAG", "I");       
                    itemx[0].SetValue("ITM_NUMBER", "000000");       
                    itemx[0].SetValue("MATERIAL", "X");       
                    itemx[0].SetValue("PLANT", "X");      
                    itemx[0].SetValue("STORE_LOC", "X");  
                    itemx[0].SetValue("TARGET_QTY", "X");      
                    itemx[0].SetValue("SALES_UNIT", "X");      
                    schedule.Append();
                    schedule[0].SetValue("ITM_NUMBER", "000010");
                    schedule[0].SetValue("SCHED_LINE", "0001");
                    schedule[0].SetValue("REQ_QTY", "3.000");
                    schedule[0].SetValue("REQ_DATE", "20110331");
                    schedule[0].SetValue("DATE_TYPE", "1");
                    schedulex.Append();
                    schedulex[0].SetValue("UPDATEFLAG", "I");
                    schedulex[0].SetValue("ITM_NUMBER", "000010");
                    schedulex[0].SetValue("SCHED_LINE", "0001");
                    schedulex[0].SetValue("REQ_QTY", "X");
                    schedulex[0].SetValue("REQ_DATE", "X");
                    schedulex[0].SetValue("DATE_TYPE", "X");
    //* Build partner information
                    partner.Append(2);
                    partner[0].SetValue("PARTN_ROLE", "AG");       
                    partner[0].SetValue("PARTN_NUMB", "C10006");       
                    partner[1].SetValue("PARTN_ROLE", "WE");       
                    partner[1].SetValue("PARTN_NUMB", "C10006");

  • Procedure Confirmed with Comparing Dates

    Trying to compare two dates, and there's so many ways I'm
    just getting a bit
    confused.
    I have a date stored in my database in a timestamp field with
    this format:
    2006-03-05 19:13:05
    I have a term defined in months (in the database) of how long
    the account is
    valid:
    term: 12
    I can now almost get the expired date, with this code, where
    $vDate is the
    untouched date from my database, and $term is the term in
    months.
    $blog2 = date("M jS Y",strtotime($vDate,'+'.$term.'
    Month'));
    But it only increments the months, not the years.
    Now, here's my problem:
    I can create an array with expired and current dates, but
    then I have to
    construct a moderately complex if/elseif statement to check
    year, then
    month, then day.
    Is there a better way? IE, can anybody think of a method in
    which I can
    compare the dates more efficiently? I'm going in circles.
    Everytime I
    think I've almost got it, I lose something.
    Any suggestions?
    TIA,
    Jon

    David, thank you for replying.
    I was just looking at doing it with SQL, but here is my
    question/problem:
    I am doing this for a client database of hosting customers -
    a one-stop list
    so we can see who's due. I'm worried about having two sql
    queries per
    customer. Currently it wouldn't be a big deal, but hopefully
    in the future
    it would be.
    Can you confirm this would be an issue? If it is an issue,
    can you take a
    peek at my code below? Can you confirm I'm either bass
    ackwards or on the
    right track to do this in PHP? As I stated, if there's an
    easy SQL solution
    that won't cause extra load on the server, cool.
    I'm doing it as such now (my previous method was not
    working):
    $dates1 = create_Dates($renewDate);
    //Create_dates function listed below
    $status = account_expire($dates1);
    echo $status;
    //account_expire function below:
    //Create Dates function:
    function create_Dates($date){
    $date = strtotime($date);
    $dates['eM'] = date("m",$date);
    $dates['eD'] = date("j",$date);
    $dates['eY'] = date("Y",$date);
    $dates['cM'] = date("m");
    $dates['cD'] = date("j");
    $dates['cY'] = date("Y");
    return $dates;
    //and this long bore is my if/else to check dates:
    function account_expire($dateAray){
    //exploding an array would be best
    $eM = $dates['eM'];
    $eD = $dates['eD'];
    $eY = $dates['eY'];
    $cM = $dates['cM'];
    $cD = $dates['cD'];
    $cY = $dates['cY'];
    //this is where we begin calculating
    if($eY > $cY){ //07 > 06
    $status = 'Paid';
    return $status;
    elseif($eY < $cY){
    $status = 'EXPIRED';
    return $status;
    elseif($eY == $cY){
    if($eM > $cM){
    $status = 'Paid';
    return $status;
    elseif($eM < $cM){
    $status = 'EXPIRED';
    return $status;
    elseif($eM == $cM){
    if($eD > $cD){
    $status = 'EXPIRED';
    return $status;
    elseif($eD <= $cD){
    $status = 'Paid';
    return $status;
    >
    > Use the MySQL DATE_ADD() function:
    >
    >
    http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
    >
    > SELECT registered, DATE_ADD(registered, INTERVAL 12
    MONTH) AS expiry
    > FROM myTable
    >
    > If your expiry dates are always 12 months ahead, that
    can be hard coded
    > into your SQL. If the terms are variable, do a SELECT
    query first to get
    > the term, then do a second query using the first result.

  • Help with delivery date

    hi,
    i don´t know in wich table is store the deliver date of each product in a purchase order. Could anybody help me?

    Hi,
      Check the field EKET-EINDT.
    Thanks
    Naren

Maybe you are looking for

  • How do I use iphoto on ipad, without syncing?

    I have an ipad 2 and a PC. I want ot be able to edit and categorize my photos on my ipad but I want to be able to just leave the pictures in shared folderon my PC. I would be doing this over my home wi-fi but just not sure what I need to do. I know h

  • LMS 3.0.1 Package Query

    Hi All Just a quick query. Running LMS 3.0.1 with the following component versions RME     4.1.1 CS      3.1.1 CM     5.0.6 CV     6.1.7 Asst     1.0.1 Portal     1.0.1 HUM     1.0.0 Is there a next highest revision for any of these packages. I've be

  • Whats the function used in objective C to change language in an app

    whats the function used in objective C to change language in an app

  • Error in Query Activation from Business Content

    Hi Gurus, I'm having problems when I'm activating Query 0FIGL_VC1_Q0001 (Financial Statement and P&L: Actual/Actual Comparison) under Virtual Cube (0FIGL_VC1). Everytime I activate it, it displays these errors 1. Error when activating element 2GXNYXW

  • Posting of accrual costs on MIRO

    Hi Gurus, I have a Purchase Order with accrual costs (for example, condition type RUB1); I did EM on MIGO and invoice receipt of the materials on MIRO. Firstly, how can I post the invoice of my accrual costs? Is it in MIRO? How? Secondly, how can I d