Restricting Variable Pick List

We have a requirement to restrict the pick list on a hierarchy variable.  We currently have 6 hierarchies to choose from (A, B, C, D, E, F).  Our requirement is to only display 3 of the hierarchies (A, B, C) in the drop down pick list on selection criteria screen.  Is there any way to do this?  We do not want to use security to restrict due to the characteristic being used in many other places that would have other security values.  We are on BW 70.

I don't see the ability to use a replacement path on a hierarchy variable.  I believe I can on the nodes, but I want to limit which hierarchy the user can select.  If there are 6 hierarchies on Cost Center (A, B, C, D, E, F) I want the pick list on the selection screen to only display A, B, and C.
Also, how would I create a query to list out the available hierarchies?  I think I can only pick one hierarchy to restict a characteristic on, even then I cannot drill down to display it (that I know of).

Similar Messages

  • Can you sort the "local variable" pick list?

    My program has a lot of local variables. If I right click on a variable and click on "select item", a loooong list of all my local variables appears. They appear to be in the order in which they were created in my program.
    Is there any way to modify the display to where the local variables appear in alphabetical order?
    Amateur programmer for over 10 years!

    The best solution is to not use a lot of local variables . Here is a neat trick to use local variables without having to use local variables . If you are using a state machine (case structure inside a while loop), create a cluster constant on the block diagram inside a state or case called "Local Defs". Inside the cluster, put constants for every local variable you will use. Label the constants like you would a local variable. Put a shift register on the loop border. Wire the cluster to the shift register on the right side. Do not initialize the shift register on the left side. In any case frame, you can wire from the left shift register into an unbundle or bundle to read or write to the Local. You never have to call the Local Defs state, the cluster will be defined because of the wiring. If using controls at many places, make a local constant for each control and have a state where the control is written to the local. Then you can read the local to use the value at any time. See attached vi for an example.
    - tbob
    Inventor of the WORM Global
    Attachments:
    StateMachineWithLocals.vi ‏45 KB

  • System variable for Warehouse name in Pick list PLD

    Hi Experts,
    My customer would like to show the Warehouse name on the Pick List print layout.
    What is the System Variable to display the Warehouse name on the Pick List?. Iu2019m working with Sap Business One 2007A.. Where can I find the system variables for Chile localization. Thanks Very Much
    Claudia

    Hi Claudio,
    Try this,
    ->> Open the Pick List(System) PLD and Save as the New PLD.
    ->> Open the NEw PLD and Create 1 Database Field(for WareHouse Name) in Repetetive Area.
    Table -> OWHS - WareHouse
    Column -> WhsName - WareHouse Name
    Save as and Run the Print Preview.
    IF will not print the WareHouse Name in Print.
    Do this in PLD.
    ->> Open your PLD.
    --> Ralate to WareHouse Code Field ID in WareHouse Name Field at Content Tab on Properties Window.
    Regards,
    Madhan.

  • Need solution for dynamic pick lists in Crystal Reports

    Does anyone have a good solution for creating a dynamic pick list for a Crystal Report that is based off of a BW Query without having to use a BW user input variable? In many cases it is not practical to use a BW variable to generate a dynamic pick list due to the high number of possible member values and the highly dynamic nature of the particular characteristic (customers, materials, etc.).  In my understanding the LOV Server is not an option when dealing with SAP BW.  Anyone else running into this issue with Crystal and SAP BW?

    Hi Mike,
    we once solved this by creating LOVs in BusinessView Manager. I am not sure if you can use the BW Publisher in this scenario as we did not use it. We published the reports directly to the BOE server for some reasons.
    Creating a LOV in BusinessView manager is really easy. You can create cascading prompts, shedule refreshing of the lists, ...
    By using the cascading prompt feature you can make prompts like this:
    First enter the customer number (or pick it from a list) and then the second list, which holds the materials only has shows the ones which had been purchased by that customer. I think this is what you are looking for.
    You should give it a try!
    Thorsten

  • Sort Pick List

    Hello,
    I added a field to the pick list to show the item location from item master data. Now in the PDL I want to sort by this column when printing. The sort button in PLD -> Rep Area -> Sort is always greyed out.
    Do you have any idea what goes wrong?
    Thanks!

    Hi,
    Once you add a field to the list, sorting option may be restricted. This is normal.
    Thanks,
    Gordon

  • Smartforms for picking list

    Hi,
    Someone knows smartforms and its program for picking list?.
    I don't want to use sapscript SD_PICK_COLL and its program RVADSK01.
    Thanks very much.
    Matteo Vernile.

    hi,
    go through this code.
    Program Description:                                     *
    A packing list is printed for each outbound delivery.    *
    Before the delivery is made to a customer the goods are  *
    packed in a box or any other container and to have a     *
    list of products put in the package packing list is      *
    required. This packing list will be printed upon pick    *
    confirmation or at a time the delivery note is created.  *
    REPORT  z_sd_rep_000002 MESSAGE-ID zdevmsg.
    ********************TABLES USED***************************************
    TABLES:   likp,       "SD Document: Delivery Header Data
              lips,       "SD document: Delivery: Item data
              vbak,       "Sales Document: Header Data
              vbpa,       "Sales Document: Partner
              vbuk,       "Sales Document: Header Status and Admin Data
              vttp,       "Shipment Item
              vttk,       "Shipment Header,
              adrc,       "Addresses (Business Address Services)
              tvst,       "Organizational Unit: Shipping Points
              vbfa,       "Sales Document Flow
              kna1,       "General Data in Customer Master
              vepo,       "Packing: Handling Unit Item (Contents)
              vekp.       "Handling Unit - Header Table
    INCLUDE rvadtabl.
    ********************WORK AREA*****************************************
    DATA    : wa_zpacklist TYPE  zpacklist,  "structure to hold all the data
                                             "that has to be passed to the
                                             "smart form
              wa_item TYPE LINE OF zitempack."workarea of main item struct
    DATA    : wa_item_lips TYPE LINE OF zitempack."wrkarea for data selected
    "from LIPS table
    ********************INTERNAL TABLE************************************
    DATA    : i_item_lips TYPE zitempack,       "Internal table for data
                                                "selected from LIPS table
              i_item TYPE   zitempack.          "main internal table for
    "items data.
    *****************************CONSTANTS********************************
    CONSTANTS : c_posnn(1)        TYPE c VALUE 'J',
    YATHAM6 Insert Begin
                c_vbtyp_v(1)      type c VALUE 'C',
    YATHAM6 Insert End
                c_parvw_stp       TYPE vbpa-parvw VALUE 'AG',
                c_parvw_shp       TYPE vbpa-parvw VALUE 'WE',
                c_formname        TYPE tdsfname VALUE 'Z_PACKINGLIST',
                c_zdevmsg         TYPE SY-MSGID value 'ZDEVMSG',
                c_e               TYPE SY-MSGTY VALUE 'E',
                c_000             TYPE SY-MSGNO VALUE '000',
                c_X(1)            TYPE c VALUE 'X',
                c_fully_picked(1) TYPE c VALUE 'C'.
    ***************************GLOBAL VARIABLE****************************
    DATA    : v_objnm         LIKE   thead-tdname,
              v_tknum_tmp     LIKE   vttp-tknum,
              v_formname      TYPE   rs38l_fnam,
              v_venum         TYPE vekp-venum,
              v_screen,        "Output on printer or screen
              v_picked(1).
    ************************MAIN PROGRAM ***********************************
    FORM entry USING return_code us_screen.
      DATA: v_retcode TYPE sy-subrc.
      CLEAR v_retcode.
    Clear any previous data.
      CLEAR wa_zpacklist.
      v_screen = us_screen.
    Check whether the Delivery number is already been picked.If it is
    picked the set the print parameters
      PERFORM processing USING us_screen
                         CHANGING v_retcode.
      IF v_retcode NE 0.
        return_code = 1.
      ELSE.
        return_code = 0.
      ENDIF.
    ENDFORM.                    "ENTRY
    *&      Form  PROCESSING
    Check whether the Delivery number is already been picked.If it is
    picked the set the print parameters
    FORM processing  USING    us_screen
                     CHANGING v_retcode.
      DATA: v_fm_name            TYPE rs38l_fnam.
      DATA: v_control_param      TYPE ssfctrlop.
      DATA: v_composer_param     TYPE ssfcompop.
      DATA: v_recipient          TYPE swotobjid.
      DATA: v_sender             TYPE swotobjid.
      DATA: v_formname           TYPE tdsfname .
    get SmartForm from customizing table TNAPR
      v_formname = tnapr-sform.
    Check whether the delivery number has been picked.If it is picked
    select the relevant data for that delivery number
      PERFORM get_data CHANGING v_retcode.
      CHECK v_retcode EQ 0.
    Set the print parameters for Smartform
      PERFORM set_print_param CHANGING v_control_param
                                       v_composer_param
                                       v_recipient
                                       v_sender
                                       v_retcode.
    Check whether the Smart form exists.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        formname                 = c_formname
        VARIANT                  = ' '
        DIRECT_CALL              = ' '
    IMPORTING
       fm_name                  = v_formname
      EXCEPTIONS
        NO_FORM                  = 1
        NO_FUNCTION_MODULE       = 2
        OTHERS                   = 3
      IF sy-subrc <> 0.
        v_retcode = sy-subrc.
        PERFORM protocol_update.
      ENDIF.
    Check the structure wa_zpacklist for data.
      IF NOT wa_zpacklist IS INITIAL.
        CALL FUNCTION v_formname
          EXPORTING
            archive_index      = toa_dara
            archive_parameters = arc_params
            control_parameters = v_control_param
            mail_recipient     = v_recipient
            mail_sender        = v_sender
            output_options     = v_composer_param
            user_settings      = ' '
            wa_zpacklist               = wa_zpacklist
          IMPORTING
          DOCUMENT_OUTPUT_INFO       =
          JOB_OUTPUT_INFO            =
          JOB_OUTPUT_OPTIONS         =
          EXCEPTIONS
           formatting_error           = 1
           internal_error             = 2
           send_error                 = 3
           user_canceled              = 4
           OTHERS                     = 5. .
        IF sy-subrc <> 0.
            error handling
          v_retcode = sy-subrc.
          PERFORM protocol_update.
        ENDIF.
      ELSE.
        IF v_screen = space.
          CALL FUNCTION 'NAST_PROTOCOL_INIT_AND_LOAD'
            EXPORTING
              cps_nast = nast.
          CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
            EXPORTING
              msg_arbgb = c_ZDEVMSG
              msg_nr    = c_000
              msg_ty    = c_E
              msg_v1    = syst-msgv1
              msg_v2    = syst-msgv2
              msg_v3    = syst-msgv3
              msg_v4    = syst-msgv4
            EXCEPTIONS
              OTHERS    = 1.
        ELSE.
          MESSAGE e000 WITH 'No Data Exists, to Display Output'(002).
        ENDIF.                    " IF v_screen = space.
      ENDIF.                  " if not wa_zpacklist[] is initial
    ENDFORM.                    " PROCESSING
    *&      Form  get_data
    Check whether the delivery number has been picked.If it is picked
    select the relevant data for that delivery number
    FORM get_data  CHANGING v_retcode.
    This is the Input obtained from the NAST entry, Delivery Number
      wa_zpacklist-vbeln = nast-objky.
      CLEAR v_picked.
    Check if the Delivery has Not been Picked, if not then Do Not Display
    the Layout and display an Error Message
      CLEAR vbuk.
      SELECT SINGLE kostk
        FROM vbuk
        INTO vbuk-kostk
        WHERE vbeln EQ wa_zpacklist-vbeln.
    The Picking should Not be Processed, Else Display a Msg
      IF vbuk-kostk NE c_fully_picked AND vbuk-kostk NE space.
        v_picked = c_X.
        v_retcode = 1.
        IF v_screen = space.
          CALL FUNCTION 'NAST_PROTOCOL_INIT_AND_LOAD'
            EXPORTING
              cps_nast = nast.
          CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
            EXPORTING
              msg_arbgb = c_ZDEVMSG
              msg_nr    = c_000
              msg_ty    = c_E
              msg_v1    = syst-msgv1
              msg_v2    = syst-msgv2
              msg_v3    = syst-msgv3
              msg_v4    = syst-msgv4
            EXCEPTIONS
              OTHERS    = 1.
        ELSE.
          MESSAGE e000 WITH
                    'Delivery has not been Picked-Please Check'(001).
        ENDIF.
      ENDIF.
      CHECK v_retcode = 0.
    get all the header related data from LIKP,VBAK,VBFA,VTTP,VTTK
      PERFORM get_header_data.
    get the address numbers for shipping point ,ship-to-party and
    sold-to-party from VBFA,TVST tables
      PERFORM get_addr_no.
    get all the item details from VBAP ,LIPS
      PERFORM get_item_data.
    ENDFORM.                    " get_data
    *&      Form  get_header_data
    Get all the header related data from LIKP,VBAK,VBFA,VTTP,VTTK
    FORM get_header_data.
    select the header data from LIKP based on Delivery number.
    select the following fields and put it into workarea wa_zpacklist.
      SELECT SINGLE vbeln          "Delivery number
                    kunnr          "Sold to party
                    kunag          "Shipt to party
                    inco1          "Inco term
                    inco2          "Inco term 2
                    btgew          "Total Weight
                    gewei          "Net weight
                    anzpk          "Total noumber of packages in delivery
                    vkorg          "Sales Organization
                    vstel          "Shipping Point/Receiving Point
                    bldat          "Date on which the Docu. was created
               FROM likp
               INTO CORRESPONDING FIELDS OF wa_zpacklist
              WHERE vbeln = wa_zpacklist-vbeln.
    to get Purchase order number (BSTNK),
          Sales order number (VBELV),
          Contract number (VBELN_GRP),
          Customer order date first get the Sales document from VBFA
    using Delivery number (LIKP-VBELN) and VBTYP_N in the where clause.
    YATHAM6 Del Begin - D47K910351 05/12/2004
    SELECT SINGLE  vbelv          "Sales Document
              INTO  wa_zpacklist-vbelv
              FROM  vbfa
              WHERE vbeln   = wa_zpacklist-vbeln
              AND   vbtyp_n = c_posnn
    YATHAM6 Insert Begin - 04/15/2004
    Preceding Document category only Order need to be selected
    Without this it is selecting Quote and/or Inquiry because of
    Select single (Which would select the first entry)
              AND   vbtyp_v = c_vbtyp_v.
    YATHAM6 Insert End - 04/15/2004
    YATHAM6 Del End - D47K910351 05/12/2004
    YATHAM6 Insert Begin - D47K910351 05/12/2004
    When a Sales order is created with reference to another sales order
    two precding document categorys will be available for a delivery.
    Example: Order with subsequent delivery free of charge
    Need to get latest preceding document. This change was made to pull
    correct preceding document which will be on delivery line item.
    All delivery items will have the same preceding document number.
        select single vgbel from lips into wa_zpacklist-vbelv
              where vbeln = wa_zpacklist-vbeln.
    YATHAM6 Insert End   - D47K910351 05/12/2004
      SELECT SINGLE bstnk           "Customer purchase order number
                    vbeln_grp       "Master Contract NUmber
                    bstdk           "Customer Order date
             INTO  (wa_zpacklist-bstnk,
                     wa_zpacklist-vbeln_grp,
                     wa_zpacklist-bstdk)
             FROM  vbak
             WHERE vbeln = wa_zpacklist-vbelv.
    select shipment number from VTTP table using wa_zpaclist-vbeln in the
    where clause.
      SELECT tknum                  "Shipment Number
             FROM   vttp
             UP TO 1 ROWS
             INTO   wa_zpacklist-tknum_tmp
             WHERE  vbeln = wa_zpacklist-vbeln.
      ENDSELECT.
    for this value of wa_zpacklist-tknum_tmp select
    External identification 2
    Shipping type
    Number of forwarding agent
    from VTTK
      SELECT SINGLE exti2          "External identification 2
                    vsart          "Shipping type
                    tdlnr          "Number of forwarding agent
             INTO   (wa_zpacklist-exti2,
                     wa_zpacklist-vsart,
                     wa_zpacklist-tdlnr)
             FROM   vttk
             WHERE  tknum = wa_zpacklist-tknum_tmp.
    get the packing date from VEkP table for which Internal Handling
    Unit Number(VENUM) is required from VEPO table.
    get the value from VEPO table for the delivery number.
      SELECT venum
             UP TO 1 ROWS
             FROM vepo
             INTO v_venum
             WHERE vbeln = wa_zpacklist-vbeln.
        EXIT.
      ENDSELECT.
      CHECK sy-subrc = 0.
      SELECT SINGLE erdat
             FROM   vekp
             INTO   wa_zpacklist-erdat
             WHERE  venum = v_venum.
    ENDFORM.                    " get_header
    *&      Form  get_item
    Get all the item details from VBAP ,LIPS
    FORM get_item_data.
    refresh the internal tables of item data.
    data: v_tabix like sy-tabix.   "YATHAM6 Insert 03/31/2004
      REFRESH : i_item,
                i_item_lips.
    get the item details from VBAP table based on the sales document
    number(VBELV) and store the data in i_item
      SELECT   posnr             "Sales Document Item
               posex             "Item Number of the Underlying Purchase
                                 "Order
               kwmeng            "Quantity Ordered
               kdmat             "Customer Item Number
        INTO   CORRESPONDING FIELDS OF
        TABLE  i_item
        FROM   vbap
        WHERE  vbeln EQ wa_zpacklist-vbelv.
    get the item details from LIPS based on Delivery number and
    ZZCATNO(Catalog numer)from mara using an inner join between LIPS and
    MARA using matnr as key
    *Begin of GONAGUNTLA2 - @0001 02/11/2004 D47K906487
    SELECT   a~vbeln          "Delivery Number
              a~vtweg          "Distribution Channel
              a~posnr          "Delivery item
              a~lfimg          "Actual quantity delivered (in sales units)
              a~matnr          "Material Number
              b~zzcatno        "Catlog Number for each material
              FROM lips AS a
              INNER JOIN
              mara AS b
         ON   amatnr = bmatnr
        INTO  CORRESPONDING FIELDS OF
       TABLE  i_item_lips
       WHERE  a~vbeln = wa_zpacklist-vbeln.
      SELECT     a~vbeln          "Delivery Number
                 a~vtweg          "Distribution Channel
                 a~posnr          "Delivery item
                 a~pstyv          "Delivery item category
                 a~lfimg
                 "Actual quantity delivered (in sales units)
                 a~matnr          "Material Number
                 a~uepos
                 "Higher-level item in bill of material structures
                 a~vgpos          "Sales order line item
                 b~zzcatno        "Catlog Number for each material
                 FROM lips AS a
                 INNER JOIN
                 mara AS b
            ON   amatnr = bmatnr
           INTO  CORRESPONDING FIELDS OF
          TABLE  i_item_lips
          WHERE  a~vbeln = wa_zpacklist-vbeln.
    *End of GONAGUNTLA2 - @0001 02/11/2004 D47K906487
      clear the workareas
      CLEAR : wa_item,
              wa_item_lips.
    loop at the main internal table which contains the item data.
    so that the data in the internal table i_item_lips is passed in the
    i_item table
      LOOP AT i_item INTO wa_item.
        v_tabix = sy-tabix.   "YATHAM6 Insert 03/31/2004
    read the internal table i_item_lips for key Item Number(POSNR)
    because the only link between the LIPS table and VBAP table is
    (POSNR) for the same delivery number.
    *Begin of GONAGUNTLA2 - @0001 02/12/2004
       READ TABLE i_item_lips
                  INTO wa_item_lips
                  WITH KEY posnr = wa_item-posnr.
        READ TABLE i_item_lips
                   INTO wa_item_lips
                   WITH KEY vgpos = wa_item-posnr.
    *End of GONAGUNTLA2 - @0001 02/12/2004
      check whether the same POSNR value is there in the I_item_lips table
        IF sy-subrc = 0.
    *Begin of GONAGUNTLA2 - @0001 02/12/2004
          perform get_previous_del_qty using wa_zpacklist-vbelv
                                             wa_item_lips-vgpos
                                             wa_item_lips-vbeln
                                             wa_item_lips-posnr
                                             wa_item-kwmeng.
          move wa_item-kwmeng to wa_item_lips-kwmeng.
    *End of GONAGUNTLA2 - @0001 02/12/2004
      to find out the Back Orders subtract Ordered Qty (KWMENG)
      with Actual Qty (LFIMG)
          wa_item_lips-zbkord = wa_item-kwmeng - wa_item_lips-lfimg.
    Begin of Modifications - YATHAM6 12/15/2003
      if wa_item-posex is not blank the repace wa_item-posnr with it.If *
      it is not blank then don't do anything.
         IF NOT wa_item-posex IS INITIAL.
           MOVE wa_item-posex TO wa_item_lips-posnr .
         ENDIF.                  "if not wa_item-posex is initial.
          If wa_item-posex is initial.
    Begin of GONAGUNTLA2 - @0001 02/12/2004
          move wa_item-posnr to wa_item_lips-posex.
            move wa_item_lips-posnr to wa_item_lips-posex.
    *End of GONAGUNTLA2  - @0001 02/12/2004
          else.
            move wa_item-posex to wa_item_lips-posex.
          endif.
    End of Modifications - YATHAM6 12/15/2003
      modify the internal table i_item by transporting VBELN LFIMG ZCALC.
    *Begin of GONAGUNTLA2 - @0001 02/11/2004 D47K906487
         MODIFY i_item FROM wa_item_lips
                       TRANSPORTING vbeln        "Delivery Number
                                    posnr        "Delivery item
                                    posex        "   YATHAM6 Insert
    *lfimg        "Actual Quantity Delivered
                                    zbkord       "Back Order
                                    zzcatno      "Catlog Number
                                    matnr        "Material Number
                                    vtweg
                       WHERE posnr = wa_item-posnr.
       MODIFY i_item FROM wa_item_lips         "YATHAM6 Del 03/31/2004
          MODIFY i_item FROM wa_item_lips index v_tabix
                              TRANSPORTING vbeln        "Delivery Number
                                           posnr        "Delivery item
                                           posex        "   YATHAM6 Insert
                                           KWMENG
                                           "   gonaguntla2 Insert
                                           lfimg
                                           "Actual Quantity Delivered
                                           zbkord       "Back Order
                                           zzcatno      "Catlog Number
                                           matnr        "Material Number
                                           vtweg
                                           uepos
                                           pstyv.
    *Table i_item should be updated with the corresponding entry not with
    *the
    item number.
                           WHERE posnr = wa_item-posnr.   "YATHAM6 Del
        else.
    YATHAM6 Mod Begin - 04/22/2004
    Delete the Current row instead of item. Because the Delivery item
    sequence could be different than that of the Sales Order item #.
        delete i_item where posnr = wa_item-posnr.
          delete i_item index v_tabix.
    YATHAM6 Mod End - 04/22/2004
    *End of GONAGUNTLA2 - @0001 02/11/2004 D47K906487
        ENDIF.                  " if sy-subrc = 0.
      ENDLOOP.                  "loop at i_item
    now once the i_item internal table is full
    check it.
      IF NOT i_item[] IS INITIAL.
        sort i_item[] by vbeln descending posex.   "YATHAM6 Insert
    move the data from i_item into the structure wa_zpacklist.
        wa_zpacklist-zitempack_tb[] = i_item[].
      ENDIF.                    "if not i_item[] is initial.
    ENDFORM.                    " get_item
    *&      Form  get_addr
          text
    Get the address numbers for shipping point ,ship-to-party and
    sold-to-party from VBFA,TVST tables
    FORM get_addr_no .
    To find out the addresses of sold-to-party, goto table VBPA select
    the address number ADRNR
      SELECT SINGLE adrnr          "Address Number
                INTO wa_zpacklist-adrnrstp
                FROM vbpa
    YATHAM6 Mod Begin - 04/15/2004
    Get the address numbers for the Delivery instead of Sales order
             WHERE vbeln =  wa_zpacklist-vbelv
               WHERE vbeln =  wa_zpacklist-vbeln
    YATHAM6 Mod End  - 04/15/2004
                 AND parvw = c_parvw_stp.
    To find out the addresses of ship-to-party, goto table VBPA select
    the address number ADRNR
      SELECT SINGLE adrnr         "Address Number
                INTO wa_zpacklist-adrnrshp
                FROM vbpa
    YATHAM6 Mod Begin - 04/15/2004
    Get the address numbers for the Delivery instead of Sales order
             WHERE vbeln =  wa_zpacklist-vbelv
               WHERE vbeln =  wa_zpacklist-vbeln
    YATHAM6 Mod End  - 04/15/2004
                 AND parvw = c_parvw_shp.
    To select the addresses for Shipping point find out the address *
    number from TVST table .
      SELECT SINGLE adrnr         "Address Number
               INTO wa_zpacklist-adrnr
               FROM tvst
              WHERE vstel = wa_zpacklist-vstel.
    ENDFORM.                    " get_addr
    *&      Form  set_print_param
    Set the print paramters for the smartform
    FORM set_print_param  CHANGING v_control_param  TYPE ssfctrlop
                                  v_composer_param TYPE ssfcompop
                                  v_recipient      TYPE  swotobjid
                                  v_sender         TYPE  swotobjid
                                  v_retcode        TYPE sy-subrc.
      DATA: v_itcpo     TYPE itcpo.
      DATA: v_repid     TYPE sy-repid.
      DATA: v_device    TYPE tddevice.
      v_repid = sy-repid.
      CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'
        EXPORTING
          pi_nast       = nast
          pi_repid      = v_repid
        IMPORTING
          pe_returncode = v_retcode
          pe_itcpo      = v_itcpo
          pe_device     = v_device
          pe_recipient  = v_recipient
          pe_sender     = v_sender.
      IF v_retcode = 0.
        MOVE-CORRESPONDING v_itcpo TO v_composer_param.
        v_control_param-device      = v_device.
        v_control_param-no_dialog   = c_X.
        v_control_param-preview     = v_screen.
        v_control_param-getotf      = v_itcpo-tdgetotf.
        v_control_param-langu       = nast-spras.
      ENDIF.
    ENDFORM.                    " set_print_param
    *&      Form  protocol_update
          text
    Error Handling
    FORM protocol_update .
      CHECK v_screen = space.
      CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
        EXPORTING
          msg_arbgb = syst-msgid
          msg_nr    = syst-msgno
          msg_ty    = syst-msgty
          msg_v1    = syst-msgv1
          msg_v2    = syst-msgv2
          msg_v3    = syst-msgv3
          msg_v4    = syst-msgv4
        EXCEPTIONS
          OTHERS    = 1.
    ENDFORM.                    " protocol_update
    *&      Form  get_previous_del_qty
          text
    -->  p1        text
    <--  p2        text
    FORM get_previous_del_qty using f_so
                                    f_so_item
                                    f_del
                                    f_del_item
                                    f_so_qty.
      data: begin of i_vbfa_tab occurs 0,
              vbeln like vbfa-vbeln,
              posnn like vbfa-posnn,
            end of i_vbfa_tab.
      data: fv_lfimg like lips-lfimg.
      select vbeln posnn into table i_vbfa_tab from vbfa
                         where vbelv   eq f_so
                           and posnv   eq f_so_item
                           and vbtyp_n eq 'J'.
      loop at i_vbfa_tab.
        if i_vbfa_tab-vbeln ne f_del.
          clear fv_lfimg.
          select single lfimg into fv_lfimg
                              from lips
                              where vbeln eq i_vbfa_tab-vbeln
                                and posnr eq i_vbfa_tab-posnn.
          f_so_qty = f_so_qty - fv_lfimg.
        endif.
      endloop.
    ENDFORM.                    " get_previous_del_qty

  • Returns set up on pick lists

    hi,
    again i have a returns problem :).
    this time i want to set up returns based on pick lists from warehouses and suppliers. the imagined scenarios goes something like this. a store orders a set if items, usually up to 800 - 1000 lines of items. this is delivered in a unknow set of crates, which is packed differently depending on deliery. ie on some days similar orders may require 4 crates, other days its 5 crates (this is mostly due to the crates availabe at the wh may be of different size). naturally one or more crates may be dilivered to the wrong place. now, since the employe at the store dont want to go through 800 lines of items to find the missing ones, they would just want to make a full return on the entire crate.
    ideally this would be done using the pick list from the wh/supplier, since this is the only way to accuratly know whats in hte crate, but i dont know of any way to do that in sim without having to manually enter every single item. can this be done somehow? please dont restrict yourselfs to vanilla solutions, any and all extra tables are welcome :)!
    cheers
    nils

    Having the same problem here - were you ever able to resolve the issue?

  • Which transaction is used to print picking list

    Hi All,
    Can any body tell me which transaction is used to print picking list(SD)?I have to put some restrictions before printing the picking list.
    Thanks&regards
    Mahesh

    Hi,
    first you need to find a delivery with the VL06O  (for picking)
    after go to VL02N, modify the delivery quantity and save. The Picking list will be automaticly printed.
    Rgd
    Frédéric

  • Bin Location In Pick List - Cannot select batch/serial number after pick list created

    Hi,
    When i set up the item master as "Issued Primarily By Bin Location". There are no way for me to assign batch/serial in back end. In contrary, when item set up as "Issue Primarly By Batch/Serial Number", SAP prompt to pre-select the batch/serial no. during creating pick list.

    Hi,
    Please check this thread for the reason why system information is not correct.
    Variables - Sap business one
    Thanks & Regards,
    Nagarajan

  • Pick List Creation Released quantity exceeds open quantity

    Hi all,
    I'm getting the following error when trying to create pick lists through the SAPB1 DI:
    "Released quantity exceeds open quantity "
    Every time, the stock quantity in the warehouse that the code concerns is by far enough when compared to the released quantity.
    I cannot turn off the warehouse setting recommended on another post on here.
    Any ideas?
    Thanks
    Cal.

    Hi, sorry for my delayed response!
    This is still an issue, I already have a condition to check against the warehouse's current stock, this is being successful but still generates the above error when we get to PLIST.add()
    Here's the SQL I'm using to gather my data:
    select distinct t3.docnum,t4.listName as'Price List',(select isnull(sum(1),0) from pkl1 S99 where S99.orderentry = T0.docentry
    and S99.orderline = T0.linenum) as 'cupid',t0.DocEntry, t3.Confirmed, DATEDIFF(DAY,GETDATE(),t3.DocDueDate)
    as 'DateDifference' from rdr1 t0 inner join oitm t2 on t0.ItemCode = t2.ItemCode inner join ORDR t3
    on t3.DocEntry = t0.DocEntry inner join OCRD t1 on t3.CardCode = t1.cardcode inner join OPLN t4
    on t1.listnum = t4.listNum where T0.[WhsCode] = 'xxx' and  T2.[OnHand] > 0 and  T0.[OpenQty] > 0 and T2.InvntItem = 'y'
    and t3.Confirmed = 'y' and (select isnull(sum(1),0) from pkl1 S99 where S99.orderentry = T0.docentry and S99.orderline = T0.linenum) = 0
    and t4.ListName <> 'EconoSupplies Sales' and t4.ListName <> 'EconoSupplies Sales (EUR)'
    and DATEDIFF(DAY,GETDATE(),t3.DocDueDate) < case when datepart(WEEKDAY,getdate()) = 6 then 4 else 2 end group by t3.docnum,t0.docEntry,
    t3.Confirmed , t0.LineNum, t4.listname, DATEDIFF(DAY,GETDATE(),t3.DocDueDate) order by t0.DocEntry
    This returns a list of all the picks that I am interested in. I have changed the warehouse code for privacy.
    Next, we loop through each pick and extract the data:
    SELECT T1.[DocNum], T1.[DocEntry],T0.[LineNum],  T1.[CardCode],T0.[ItemCode], T0.[Dscription], T0.[OpenQty], (SELECT sum(s99
    .[OpenQty]) FROM RDR1 s99 WHERE s99.[DocEntry] = T0.[DocEntry] and  s99.[ItemCode] = T0.[ItemCode]) as 'TotalQty',T3.
    [OnHand] FROM RDR1 T0 INNER JOIN ORDR T1 ON T0.DocEntry = T1.DocEntry INNER JOIN OITM T2 ON T0.ItemCode = T2.ItemCode INNER
    JOIN OITW T3 ON T0.ItemCode = T3.ItemCode and T0.WhsCode = T3.WhsCode WHERE T0.[WhsCode] = 'DSV' and  T3.[OnHand] > 0 and 
    T0.[OpenQty] > 0 and T2.InvntItem = 'y' and t0.docEntry =  <<<VB VARIABLE HERE>>>
    ORDER BY T1.[DocEntry], T0.[LineNum]
    These two sql commands are stored in a table and called from the VB code, for soft code re-usability.
    The SQL returns the results I am expecting, and I don't think the problem lies here.
    Here's the VB code:
            Dim PLIST As SAPbobsCOM.PickLists
            PLIST = GetDIConnection.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPickLists)
            Dim RS, RS1, RS2, RS12 As SAPbobsCOM.Recordset
            Dim i, ii As Integer
            RS = GetDIConnection.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
            RS1 = GetDIConnection.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
            RS12 = GetDIConnection.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
            Dim WhsCode As String = GetCompanyNamedConfigValue("xxxxx", "xx")
            Dim SQLText As String
            Dim nErr, errMsg As String
            Dim DocDate As Date = Now
            Dim tempI As Integer = 1
            Dim executeBody As Boolean = True
            Dim ExecuteHead As Boolean = True
            Dim picklistcheck, picklistcheck1 As String
            Dim Type As String
            'CJB---- AUTO GENERATE PICK LIST-------------------------------------
            Dim OCHAPPCFGValue As String = GetAPPCFGEntry("GeneratePicks")
            If OCHAPPCFGValue = "Y" The
                Dim DocEntry, qty, docnum As Integer 'SO docentry & line qty
                Dim ItemCode As String ' Itemcode for SO line
                Dim price As Double
                Dim LineNum As Integer
                Dim OrderRs, ORderRs1 As SAPbobsCOM.Recordset
                Dim HashTable As New Hashtable
                Dim HashArray(2) As String
                OrderRs = GetDIConnection.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
                ORderRs1 = GetDIConnection.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
                Dim sqlstring1 As String = GetAPPCFGEntry("SQLSTRING1SOWMS03")
                Echo("Debug, sqlstring1: " & sqlstring1)
                OrderRs.DoQuery(sqlstring1) ' just assume the SQL brings back what I need
                Dim Attemptcount As Integer = 1
                'We now have the docEntries we need, so we loop through each docEntry and extract the lines
                Do Until OrderRs.EoF
                    DocEntry = OrderRs.Fields.Item("DocEntry").Value
                    EchoBanner("NEW RECORD, attempt count: " & Attemptcount)
                    Echo("DocEntry: " & DocEntry)
                    Dim sqlstringPart1, SqlStringPart2 As String
                    sqlstringPart1 = GetAPPCFGEntry("SQLSTRINGSOWMS03P1")
                    SqlStringPart2 = GetAPPCFGEntry("SQLSTRINGSOWMS03P2")
                    Dim sqlstring As String = sqlstringPart1 & " '" & DocEntry & "' " & SqlStringPart2
                    Echo("Debug: SOFT CODED SQL STRING FROM OCHAPPCFG FOR PICK LIST SELECTION CRITERIA:")
                    Echo(sqlstring)
                    ORderRs1.DoQuery(sqlstring)
                    If ORderRs1.RecordCount = 0 Then
                        'Error!
                        EchoBanner("No records found under docEntry: " & DocEntry)
                    End If
                    PLIST.PickDate = Today
                    PLIST.Name = "DSV Interface"
                    PLIST.OwnerCode = 1
                    Dim icount As Integer = 0
                    Dim onHand, TotalQty As Integer
                    Dim LineAdded As Boolean = False
                    Do Until ORderRs1.EoF
                        docnum = ORderRs1.Fields.Item("DocNum").Value
                        'PLIST.Lines.SetCurrentLine(icount)
                        ItemCode = ORderRs1.Fields.Item("ItemCode").Value
                        ' price = OrderRs1.Fields.Item("Price").Value
                        onHand = CInt(ORderRs1.Fields.Item("onHand").Value)
                        TotalQty = CInt(ORderRs1.Fields.Item("TotalQty").Value)
                        Echo("DocNum: " & docnum)
                        Echo("Debug: Onhand: " & onHand)
                        Echo("Debug: TotalQty: " & TotalQty)
                        If TotalQty > onHand Then
                            'WE CANNOT RAISE THIS PICK LIST, MORE REQUESTED THAN IN STOCK!
                            Echo("Unable to generate Pick List, not enough stock for item: " & ItemCode)
                            Exit Do
                        End If
                        PLIST.Lines.SetCurrentLine(icount)
                        Echo("Line set to " & icount)
                        PLIST.Lines.BaseObjectType = SAPbobsCOM.BoObjectTypes.oOrders
                        PLIST.Lines.OrderEntry = DocEntry
                        'CJB
                        LineNum = ORderRs1.Fields.Item("LineNum").Value
                        PLIST.Lines.OrderRowID = LineNum
                        'PLIST.Lines.ReleasedQuantity = OrderRs1.RecordCount ' quantity from the line in SO - OpenLineQty
                        PLIST.Lines.ReleasedQuantity = ORderRs1.Fields.Item("OpenQty").Value
                        '  PLIST.Lines.TaxCode = OrderRs1.Fields.Item("VatGroup").Value
                        Echo("Record count : " & ORderRs1.RecordCount)
                        Echo("Icount: " & icount)
                        Echo("Details...")
                        Echo("Debug: LineNum: " & LineNum)
                        Echo("Debug: DocNum: " & docnum)
                        Echo("Debug: ItemCode: " & ItemCode)
                        Echo("Debug: Released Quantity: " & PLIST.Lines.ReleasedQuantity)
                        Echo("Debug: Picked Quantity: " & PLIST.Lines.PickedQuantity)
                        Echo("Debug: OnHand: " & onHand)
                        Echo("Debug: PickDate: " & PLIST.PickDate)
                        PLIST.Lines.Add()
                        Echo("Pick List line added!")
                        icount += 1
                        ORderRs1.MoveNext()
                        LineAdded = True
                    Loop
                    ' OrderRs.DoQuery("select t0.absentry, t0.pickentry, t0.orderEntry, t1.DocEntry, t0.PickQtty from pkl1 t0 inner join ordr t1 on t0.OrderEntry = t1.DocEntry where t1.DocEntry = '" & DocEntry & "'"
                    ' If OrderRs.RecordCount = 0 Then
                    If LineAdded = True Then
                        Echo("Adding Pick List...")
                        Dim lretcode As Integer = PLIST.Add()
                        If lretcode = 0 Then
                            'success!
                            EchoBanner("Success")
                            Dim LastPickEntry As String = GetDIConnection.GetNewObjectKey()
                            Echo("Enitre Pick List created! See Pick & Pack -> Pick List in SAPB1")
                            Echo("Pick Entry: " & LastPickEntry)
                        Else
                            EchoBanner("ERROR! UNABLE TO GENERATE PICKLIST!!   " & GetDIConnection.GetLastErrorDescription)
                        End If
                    Else
                        Echo("NO LINES FOUND TO ADD TO THE PICK LIST!")
                        ' Err.Raise(vbObjectError, "SOWMS03, generate picklist", "Error creating PickList!  Error Description:  " & GetDIConnection.GetLastErrorDescription & "    Error Code: " & GetDIConnection.GetLastErrorCode)
                        'need a way of logging this error without jumping out of the loop.
                    End If
                    OrderRs.MoveNext()
                    Attemptcount += 1
                Loop

  • Delivery Notes Generation Via Pick List

    Am trying to generate delivery notes off pick tickets and i can't find any code example. I now came up with the following code but am having issues when items are in multiple Bin Locations.
    Public Sub Sales2Delivery() '(ByVal OrderID As String)
            Dim OrderID As String = ""
            Try
                Using connection As New SqlConnection(StaginConn)
                    'Dim command As New SqlCommand("SELECT DocEntry from ORDR with (nolock) WHERE NumAtCard = '" & OrderID & "'", connection)
                    Dim command As New SqlCommand("SET DATEFORMAT DMY; select distinct top 5 o.DocEntry, o.NumAtCard from ordr O with (nolock) join RDR1 R with (nolock) on R.DocEntry = O.DocEntry join OPKL P with (nolock) on P.AbsEntry = R.PickIdNo where u_shipstate = 'Delivered' and CAST(O.docdate as date) >= '30/04/2014' and P.Status = 'Y';", connection)
                    connection.Open()
                    Dim reader As SqlDataReader = command.ExecuteReader()
                    ' Call Read before accessing data.
                    While reader.Read()
                        Dim BusinessOrders As Documents = DirectCast(vCompany.GetBusinessObject(BoObjectTypes.oOrders), Documents)
                        Dim BusinessDelivery As Documents = DirectCast(vCompany.GetBusinessObject(BoObjectTypes.oDeliveryNotes), Documents)
                        Dim orders As Documents = BusinessOrders
                        orders.GetByKey(Convert.ToInt32(reader(0)))
                        OrderID = Convert.ToString(reader(1))
                        Dim Delivery As Documents = BusinessDelivery
                        Delivery.CardCode = orders.CardCode
                        Delivery.CardName = orders.CardName
                        Delivery.NumAtCard = orders.NumAtCard
                        'Delivery.DocNum = orders.DocNum
                        Delivery.HandWritten = BoYesNoEnum.tNO
                        Delivery.Series = 8
                        Delivery.DocDate = DateTime.Today
                        Delivery.DocDueDate = DateTime.Today
                        Delivery.TaxDate = DateTime.Today
                        Delivery.Address = orders.Address
                        Delivery.Address2 = orders.Address2
                        Delivery.Comments = "Based on Sales Order #" + orders.NumAtCard & "."
                        Delivery.DocCurrency = orders.DocCurrency
                        Delivery.DocDueDate = orders.DocDueDate
                        Delivery.DocObjectCode = SAPbobsCOM.BoObjectTypes.oDeliveryNotes
                        Delivery.ShipToCode = orders.ShipToCode
                        Dim lines As Document_Lines = orders.Lines
                        'If (count > 0) Then
                        '    lines.Add()
                        '    lines.SetCurrentLine((lines.Count - 1))
                        'End If
                        Dim oPickList As PickLists = DirectCast(vCompany.GetBusinessObject(BoObjectTypes.oPickLists), PickLists)
                        oPickList.GetByKey(orders.Lines.PickListIdNumber)
                        For i As Int32 = 0 To (lines.Count - 1)
                            If i > 0 Then
                                Delivery.Lines.Add()
                                Delivery.Lines.SetCurrentLine(i)
                            End If
                            ' Set the Current Lines on the order
                            orders.Lines.SetCurrentLine(i)
                            Try
                                oPickList.Lines.SetCurrentLine(i)
                                Delivery.Lines.BaseEntry = oPickList.Lines.OrderEntry
                                Delivery.Lines.BaseLine = oPickList.Lines.OrderRowID
                                Delivery.Lines.Quantity = oPickList.Lines.PickedQuantity
                                Delivery.Lines.BaseType = DirectCast(SAPbobsCOM.BoObjectTypes.oOrders, Integer)
                                Delivery.Lines.BinAllocations.BinAbsEntry = oPickList.Lines.BinAllocations.BinAbsEntry
                                Dim rs As SAPbobsCOM.Recordset = vCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
                                rs.DoQuery("select itemcode, price, dscription from RDR1 R where R.LineNum = " & oPickList.Lines.OrderRowID & " and R.PickIdNo = " & oPickList.Lines.AbsoluteEntry)
                                While (rs.EoF <> True)
                                    Delivery.Lines.ItemCode = rs.Fields.Item(0).Value.ToString 'orders.Lines.ItemCode
                                    Delivery.Lines.UnitPrice = CType(rs.Fields.Item(1).Value.ToString, Double) 'orders.Lines.UnitPrice
                                    Delivery.Lines.ItemDescription = rs.Fields.Item(2).Value.ToString 'orders.Lines.ItemDescription
                                    rs.MoveNext()
                                End While
                                rs = Nothing
                            Catch ex As Exception
                                Continue For
                                My.Computer.FileSystem.WriteAllText(_LogPath, ErrDetails.ToString, True)
                            End Try
                        Next
                        If Delivery.Add() <> 0 Then
                            ErrDetails.AppendLine(" Unable to create Delivery note for Order: " & OrderID & " <br /> " & vCompany.GetLastErrorCode() & ":" & vCompany.GetLastErrorDescription())
                        Else
                            ErrDetails.AppendLine("Successfully created Delivery note for Order:" & OrderID) ' & " as requested by " & UserEmail & ".")
                        End If
                        orders = Nothing
                        Delivery = Nothing
                        BusinessOrders = Nothing
                        BusinessDelivery = Nothing
                        My.Computer.FileSystem.WriteAllText(_LogPath, ErrDetails.ToString, True)
                    End While
                    'orders = Nothing
                    'BusinessOrders = Nothing
                End Using
            Catch ex As Exception
                ErrDetails.AppendLine(" Error generating Delivery note for Order: " & OrderID & " <br /> " & ex.ToString())
                My.Computer.FileSystem.WriteAllText(_LogPath, ErrDetails.ToString, True)
            Finally
                If Not String.IsNullOrWhiteSpace(ErrDetails.ToString) Then
                    My.Computer.FileSystem.WriteAllText(_LogPath, (ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "Errors encountered while registering data on " & System.DateTime.Now.ToString("F") & ".Errors:" & ChrW(13) & ChrW(10) & Me.ErrDetails.ToString), True)
                Else
                    My.Computer.FileSystem.WriteAllText(_LogPath, (ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "Application Ran successfully on " & System.DateTime.Now.ToString("F") & "."), True)
                End If
            End Try
        End Sub
    The Error message am getting is 1470000368 - The quantity allocated to bin locations must be positive.

    Am getting this error now is
    "1470000341 - Fully allocate item "1017494" to bin locations in warehouse "Isolo". Issue is we have items in multiple Bin locations and the items have been picked via the pick ticket. Is it also possible to generate the delivery note off the Pick List.
    The new code am using is
        Public Sub Sales2Delivery() '(ByVal OrderID As String)
            Dim OrderID As String = ""
            Try
                Using connection As New SqlConnection(StaginConn)
                    'Dim command As New SqlCommand("SELECT DocEntry from ORDR with (nolock) WHERE NumAtCard = '" & OrderID & "'", connection)
                    Dim command As New SqlCommand("SET DATEFORMAT DMY; select distinct top 5 o.DocEntry, o.NumAtCard from ordr O with (nolock) join RDR1 R with (nolock) on R.DocEntry = O.DocEntry join OPKL P with (nolock) on P.AbsEntry = R.PickIdNo where u_shipstate = 'Delivered' and CAST(O.docdate as date) >= '30/04/2014' and P.Status = 'Y' and o.DocStatus = 'O';", connection)
                    connection.Open()
                    Dim reader As SqlDataReader = command.ExecuteReader()
                    ' Call Read before accessing data.
                    While reader.Read()
                        Dim BusinessOrders As Documents = DirectCast(vCompany.GetBusinessObject(BoObjectTypes.oOrders), Documents)
                        Dim BusinessDelivery As Documents = DirectCast(vCompany.GetBusinessObject(BoObjectTypes.oDeliveryNotes), Documents)
                        Dim orders As Documents = BusinessOrders
                        orders.GetByKey(Convert.ToInt32(reader(0)))
                        OrderID = Convert.ToString(reader(1))
                        Dim Delivery As Documents = BusinessDelivery
                        Delivery.CardCode = orders.CardCode
                        Delivery.CardName = orders.CardName
                        Delivery.NumAtCard = orders.NumAtCard
                        'Delivery.DocNum = orders.DocNum
                        Delivery.HandWritten = BoYesNoEnum.tNO
                        'Delivery.Series = 8
                        Delivery.DocDate = DateTime.Today
                        Delivery.DocDueDate = DateTime.Today
                        Delivery.TaxDate = DateTime.Today
                        Delivery.Address = orders.Address
                        Delivery.Address2 = orders.Address2
                        Delivery.Comments = "Based on Sales Order #" + orders.NumAtCard & "."
                        Delivery.DocCurrency = orders.DocCurrency
                        Delivery.DocDueDate = orders.DocDueDate
                        Delivery.DocObjectCode = SAPbobsCOM.BoObjectTypes.oDeliveryNotes
                        Delivery.ShipToCode = orders.ShipToCode
                        Dim lines As Document_Lines = orders.Lines
                        'If (count > 0) Then
                        '    lines.Add()
                        '    lines.SetCurrentLine((lines.Count - 1))
                        'End If
                        Dim oPickList As PickLists = DirectCast(vCompany.GetBusinessObject(BoObjectTypes.oPickLists), PickLists)
                        oPickList.GetByKey(orders.Lines.PickListIdNumber)
                        For i As Int32 = 0 To (lines.Count - 1)
                            If i > 0 Then
                                Delivery.Lines.Add()
                                Delivery.Lines.SetCurrentLine(i)
                            End If
                            ' Set the Current Lines on the order
                            orders.Lines.SetCurrentLine(i)
                            Try
                                oPickList.Lines.SetCurrentLine(i)
                                Delivery.Lines.BaseEntry = oPickList.Lines.OrderEntry
                                Delivery.Lines.BaseLine = oPickList.Lines.OrderRowID
                                Delivery.Lines.Quantity = oPickList.Lines.PickedQuantity
                                Delivery.Lines.BaseType = DirectCast(SAPbobsCOM.BoObjectTypes.oOrders, Integer)
                                'Dim rs As SAPbobsCOM.Recordset = vCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
                                'rs.DoQuery("select itemcode, price, dscription from RDR1 R where R.LineNum = " & oPickList.Lines.OrderRowID & " and R.PickIdNo = " & oPickList.Lines.AbsoluteEntry)
                                'While (rs.EoF <> True)
                                Delivery.Lines.ItemCode = orders.Lines.ItemCode
                                Delivery.Lines.UnitPrice = orders.Lines.UnitPrice
                                Delivery.Lines.ItemDescription = orders.Lines.ItemDescription
                                '            rs.MoveNext()
                                '            End While
                                'rs = Nothing
                            Catch ex As Exception
                Continue For
                My.Computer.FileSystem.WriteAllText(_LogPath, ErrDetails.ToString, True)
            End Try
                        Next
                        If Delivery.Add() <> 0 Then
                            ErrDetails.AppendLine(" Unable to create Delivery note for Order: " & OrderID & " <br /> " & vCompany.GetLastErrorCode() & ":" & vCompany.GetLastErrorDescription())
                        Else
                            ErrDetails.AppendLine("Successfully created Delivery note for Order:" & OrderID) ' & " as requested by " & UserEmail & ".")
                        End If
                        orders = Nothing
                        Delivery = Nothing
                        BusinessOrders = Nothing
                        BusinessDelivery = Nothing
                        My.Computer.FileSystem.WriteAllText(_LogPath, ErrDetails.ToString, True)
                    End While
                    'orders = Nothing
                    'BusinessOrders = Nothing
                End Using
            Catch ex As Exception
                ErrDetails.AppendLine(" Error generating Delivery note for Order: " & OrderID & " <br /> " & ex.ToString())
                My.Computer.FileSystem.WriteAllText(_LogPath, ErrDetails.ToString, True)
            Finally
                If Not String.IsNullOrWhiteSpace(ErrDetails.ToString) Then
                    My.Computer.FileSystem.WriteAllText(_LogPath, (ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "Errors encountered while registering data on " & System.DateTime.Now.ToString("F") & ".Errors:" & ChrW(13) & ChrW(10) & Me.ErrDetails.ToString), True)
                Else
                    My.Computer.FileSystem.WriteAllText(_LogPath, (ChrW(13) & ChrW(10) & ChrW(13) & ChrW(10) & "Application Ran successfully on " & System.DateTime.Now.ToString("F") & "."), True)
                End If
            End Try
        End Sub

  • BW Hierarchies sometimes not showing as pick list

    Hi,
    we have created a Crystal Report that uses a parameter that should be picked from a BW hierarchy (a cost center group). We created the report and published it via the BW publisher to BO and then included it with an iView in the BW Portal.
    Now when I log on to the portal and call the report, I'm presented with the static pick list (top 200 values) most of the time instead of the hierarchy view (as described in http://wiki.sdn.sap.com/wiki/display/BOBJ/CrystalReportsandBWquery+elements in the lower part of the article)
    When I then log on to the CMC and call the report there, I first get the flat list, too, but when I call the report 2 or 3 times, I get the hierarchy view. When I now go back to the BW Portal, I get thet hierarchy view there as well...
    any idea what causes this issue? How can I influence which selection screen is being displayed? (particularly as I don't want everyone to have to log on to CMC first...)
    Thanks...

    Hi Duncan,
    thank you for your reply. It's really sort of tricky.
    After the pick list is up and ready once, It'll be shown fine from that point on until, I assume, my CMC login expires.
    So maybe it's some permission problem?
    I just tested the following:
    <ul>
    <li>log into portal, call report -> flat list
    <li>log into CMC -> call report (does not have to be the same, just has to have a hierarchy pick list, a simple report does not do the trick) -> check that it has the hierarchy pick list
    <li>go back to the portal, call the report again -> hierarchy pick list comes up ok
    <li>log off from CMC
    <li>go back to the portal, call the report again -> flat list again...
    </ul>
    the whole thing works the same when I replace CMC by InfoView. The strange thing is that I have to log in to Infoview the first time I call the report from the portal (even though we have SAP credentials in BO), but this does not seem to be sufficient. I have to call one of the reports in Infoview or CMC first to make it work from the portal.
    Concerning the trace, I'll have to look into this together with our sysadmins, but I'll see what I can get.
    Thanks again for your ideas,
    cheers
    MU

  • Crystal Parameter Hierarchy Pick List not showing in Infoview

    Hello,
    We are having an issue with crystal reports not showing the hierarchy pick list in infoview.
    We have 3 environments, Dev, QA, Prod.
    Business Objects environments consist of 3 separate servers
    Dev
    Windows Server 2003 64bit
    BOXI 3.1 with Service Pack 2
    Integration Kit 3.1 with SP2
    Crystal Reports V1 SP2
    QA
    Windows Server 2003 64bit
    BOXI 3.1 with Service Pack 2
    Integration Kit 3.1 with SP2
    Crystal Reports V1 SP2
    Prod
    Windows Server 2003 64bit
    BOXI 3.1 with Service Pack 2
    Integration Kit 3.1 with SP2
    Crystal Reports V1 SP2
    SAP BW Environments consist of 2 server landscapes, with DEV / QA sitting on 1 and production on its own.
    ServerA
    Dev and QA
    ServerB
    Prod
    We create a crystal report in Dev BOBJ, and publish to DEV SAP BW system sitting on ServerA.
    The picklist shows hierarchy properly in Dev Infoview.
    We then LCM the report to QA BOBJ, and Do Not publish to QA SAP BW system sitting on ServerA.
    We transport the role that the report was published to, from Dev SAP BW to QA SAP BW
    The picklist shows hierarchy properly in QA Infoview.
    We then LCM the report to PROD BOBJ, and Do Not publish to PROD SAP BW system sitting on ServerB.
    We transport the role from QA SAP BW to Prod SAP BW
    The picklist does NOT show hierarchy properly in Prod Infoview.
    We are a bit confused on why the picklist works properly on QA Infoview without publishing, but will not work on Production Infoview.
    Is it because the repository objects for the picklist contain some server paths? (Since DEV and QA sit on the same server "ServerA")
    Do we need to publish in production SAP BW for the hierarchy pick list to function?
    Any help would be appreciated,
    Thanks!
    Nick

    Hi Nick,
    Did you get this resolved? We are encountering the same issue.  We have migrated our report from QA to Prod using BW Transport and then used BW Publisher to publish to BOE.  The parameter list shows in InfoView for Dev and QA, but not Prod.
    We're using BOE SP2 FP 2.8

  • Pick List Will Not Print On Add with SAP B1 2007A

    There appears to be a bug with printing pick lists on Add with SAP B1 2007A.  I have replicated the problem with PL03, 06 and 08.
    Pick lists will print manually, but if you have them setup to print on add (Administration->System Initialization->Print Preferences), the following error in the log will appear:
    Error      Default report not found for current report type; set a default report and try again C:\Program Files\SAP\SAP Business One\SAP Business One.exe PID=6104 TID=1672
    I ran a SQL trace and found the problem.  The default Pick List report is set and set correctly in tables RTYP and RDOC.  The problem is that SAP is looking for a RTYP.CODE value of PKL1 (instead of RLR2).  PKL1 does not exist as a code in either 2005 or 2007.  The Pick List document ID is RLR20001.
    To confirm this on my demo database, I updated RTYP and set the CODE of RLR2 to PKL1.  Afterwards, when adding a Pick List, it printed without any errors.  I suppose another temporary fix would be to add a new record to the RTYP tabe with a CODE of PKL1 and the default pick list report document ID.

    After many hours of inquiring, searching and digging...  There is an obscur SAP Note that says clearly, NOT SUPPORTED.
    Best thing I could do, was to keep a server with the same configuration ready to connect to my SAN and take over from the dead server.
    So for anyone interested in this topic.  Save you time, search the SAP Notes for Support and high availability.
    Hope that helps others.

  • Problem in generation of Picking list

    Hi friends,
    The scenario:  Picking list is printed as soon as the delivery is saved. The program and layout are working fine.
    Example: let a delivery is being saved with reference to a sales order with only one line item ( for simplicity), and let the quantity to be delivered that is delivery quantity (LIPSD-G_LFIMG, on screen) be 2, now there are three cases:
    1. before saving the delivery if NO Picking quantity (LIPSD-PIKMG, on screen) is entered, The picking list is printed, here the field VBUP-KOSTA (picking status field) is having value 'A', and field VBUK-KOSTK(Overall Picking status)is also having value 'A', and the picking list is printed.
    2. before saving the delivery if  Picking quantity (LIPSD-PIKMG, on screen) is entered as 1, the field VBUP-KOSTA (picking status field) is having value 'B', and field VBUK-KOSTK( Overall Picking status) is also having value 'B', and the picking list is printed.
    3. before saving the delivery if  Picking quantity (LIPSD-PIKMG, on screen) is entered as 2, the field VBUP-KOSTA (picking status field) is having value 'C', and field VBUK-KOSTK( Overall Picking status) is also having value 'C', and the picking list is NOT printed.
    I think the check is only done on VBUK-KOSTK for the picking list print, as in case 3, i changed the value of VBUK-KOSTK back to 'A' by using the user exit USEREXIT_SET_STATUS_VBUK in include LV45P079 as a result of which the picking list was printed, but it also stored the VBUK-KOSTK value as 'A' in the database table which is undesirable, as it should be saved with its earlier value, before it was explicitly made 'A'.
    So, my requirement is to Print the picking list, even if the delivery quantity and picking quantity is same for any number of line items.
    How can i solve this problem?? Speedy help requested.
    thanks,
    Sharon.

    Hi Sharon,
    Looks like you need this pick list no matter what the status of the document is and what the picking relevancy is. Why don't you create an output type that is assigned to the document all the time and then create this form as it is. If you are trying to use the standard output type and standard form and standard routine, then system is going to behave the standard way, that is to create a pick list when it is relevant for picking and only if the status is not complete. The system logic is that a pick list is supposed to tell your warehouse as to what needs to be picked and if there is nothing to be picked or if the item not relevant for the picking then it doesn't need to be there on this list.
    So if you want a list similar to the pick list, have the logic replicated minus the pre-conditions about picking status etc, have the form copied and then create and assign it to a new output type.
    Regards,
    Srinivas

Maybe you are looking for

  • How to get user data in a user profile portlet

    You would think that this would be easy. Its not? This was posted in the wrong forum: Re: Interaction (ALUI/WCI) Cutom User Profile Portlet "I have a custom portlet that returns user specific information using a portal user profile property. It works

  • Problem with updating Time component of an Oracle Date field in ALBPM

    Hi. I'm new to ALBPM and am experiencing the following problem I hope someone can take the time to help out with. I'm using a Date and Time Picker element in a Form to enter the date and time information. Within ALBPM the date and time representation

  • CcBPM  - what does meant "Create New Transaction" properties ?

    Hi XI expert, could you enligtheen me on what is the meaning of "Create new transaction" properties in step Send, Transformation in the ccBPM. When i need to tick this properties. ? Cheers Fernand

  • Please check inputs - error message

    Hi, I'm using Microsoft Windows XP Profesional SP3, english version I installed all needed SDKs correctly (all was done like in tutorial movies) I'm able to create Windows Mobile package and this package works correctly, but when i try to create Symb

  • Query views not showing changes of a query

    Hello All, I have a base query with about 20 query views from it.  If I change something in the base query i.e. change number of decimal places on a key figure.  I would expect this change to be shown in the query views.  This is not happening.  Shou