Add additional authorization object to create purchase order t-code me21n

Hi,
we are running 4.7 Enterprise.
I would like to add an additional auth. object to transaction code ME21N in order to restrict purchase order entry by material type.
Ideally I would like that the M_MATE_MAR (Material Master: Material Types) auth. object is checked since I want to restrict certain users by material type = HAWA.
Would that be possible?
If yes, how?
Thanks!

Hi Armin
Authorizationscheck are implementd directly in the source code - this means that often, it is not possible, using standard, to add an extra authorization check.
If the M_MATE_MAR is already implemented, you can inset it manually, but if isn't you need to look for an alternative, or perhaps an user exit in which you implement it your self.
You can find a list here http://arthur_ong.tripod.com/xab018.htm.
Regards
Morten Nielsen

Similar Messages

  • Creating purchase order from code

    I am importing an excel file and then for each row,trying to create purchase order through coding by using document object. I am successful in creating Order Headers but how can i create Lines if the excel sheet is having Same order but different Item codes????

    I was trying to import excel file in purchase order by following way:-
    I read each row and for each row, call function for creating order. This is my sample code---
    (var30 is previous excel value of order no. & var1 is current value)
    public sub createorder()
    odocs = GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseOrders)
                If irow = 2 Then
                    odocs.CardCode = "200173"
                    odocs.Lines.ItemCode = var16
                    odocs.Lines.Add()
                Else
                    If var1 = var30 Then
                        odocs.CardCode = "200173"
                        odocs.Lines.ItemCode = "3231015"
                        odocs.Lines.Add()
                    Else
                        lRetCode = odocs.Add()
                        odocs.CardCode = "200173"
                        odocs.Lines.ItemCode = var16
                        odocs.Lines.Add()
                    End If
                End If
                lRetCode = odocs.Add()
                Dim x As String
                GOD_Company.GetNewObjectCode(x)
                If lRetCode <> 0 Then
                    GOD_Company.GetLastError(lErrCode, sErrMsg)
                    MsgBox(sErrMsg)
                Else
                    MsgBox("Order Created with no " & x & ".")
                End If
                var30 = var1
    This code is giving error as "Item No. is missing(OPOR.ObjType)", But Item no. is not present in Purchase Order. Please check whether Code is proper or i need to make any changes???????/

  • Creating purchase order through coding

    I am trying to create purchase order through Code, for a table field i can insert as :
    odocs = GOD_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseOrders)
    odocs.CardCode = "200173"
    But if the field is not a table field then , how can i insert it in PO?????

    Hi Ashish Patil 
    Not sure what you mean, not sure what table you are talking about. But here is some sample code on how to add a purchase order.
    Dim PO As SAPbobsCOM.Documents
            PO = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseOrders)
            PO.CardCode = "VUL001"
            PO.Lines.ItemCode = "02SILVTS"
            PO.Lines.Quantity = 1
            PO.Lines.Price = 120
            If PO.Add() <> 0 Then
                Dim str As String
                str = oCompany.GetLastErrorDescription()
                MsgBox(str)
            End If
    hope it helps

  • User based authorization to create Purchase Orders out of Purchase Req.?

    Hello,
    I have the following requiment for my client:
    User based authorization to create Purchase Orders out of Purchase Req.?
    I am told the same can be achieved using same standard menu path in IMG/Customizing.
    Please advise with the menu path and detials, Usefull answers will be rewarded.
    Thanks

    Using OMET Function Authorization, you can restrict users to create Purchase orders without Purchase Reqn.
    Using OMET trxn code Create one Function Authorixation Called pr and in General Parameters tab Select the Field Selection and in Possible reference Objects Tab Mark the With ref to Prs check box and save.
    Next, you've got to associate via SU01 
    Click Parameters, insert a new parameter id EFB to the authorization code. 
    Type in Parameters value you want e.g. XX 
    You have to assign the control for ALL the SAP buyers via thier SAP users id.
    Logoff and login again. Then try to create a Purchase Order without a reference.
    From Next time whenever you try to create with out referring PR it will not allow you to Save PO.
    Regards,
    Ashok

  • Created purchase order based in drafts

    I need help, I want to create purchase order based in drafts.
    Has somebody any sample in SDK??
    Thanks.

    Hi Santiago,
    Please see your Help Filesprovided with the SDK:
    DI-API > Reference > Overview > Objects > Documents. Below on that page you'll find a nice link to the sample below. Replace the <i>vDrafts.DocObjectCode = oInvoices</i> with order and you're set.
    Hope it helps,
    Rowdy
    <b>Code (VB from the Help File)</b>
    Sub AddInvoice_Click()
        Dim RetVal As Long
        Dim ErrCode As Long
        Dim ErrMsg As String
        'Create the Documents object
        Dim vDrafts As SAPbobsCOM.Documents
        Set vDrafts = vCmp.GetBusinessObject(oDrafts)
        'Set values to the fields
        vDrafts.DocObjectCode = oInvoices
        vDrafts.CardCode = "BP234"
        vDrafts.HandWritten = tNO
        vDrafts.DocDate = "21/8/2003"
        vDrafts.DocTotal = 264.6
        'Invoice Lines - Set values to the first line
        vDrafts.Lines.ItemCode = "A00023"
        vDrafts.Lines.ItemDescription = "Banana"
        vDrafts.Lines.Quantity = 50
        'Invoice Lines - Set values to the second line
        vDrafts.Lines.Add
        vDrafts.Lines.ItemCode = " A00033"
        vDrafts.Lines.ItemDescription = "Orange"
        vDrafts.Lines.Quantity = 1
        'Add the Invoice
        RetVal = vDrafts.Add
       'Check the result
        If RetVal <> 0 Then
            vCmp.GetLastError ErrCode, ErrMsg
            MsgBox ErrCode & " " & ErrMsg
        End If
    End Sub

  • How to trigger workflow for already created purchase order ?

    HELLO EXPERTS
    let me clear my scenario first . i have 1 purchase order whose workflow is not triggered . means it is showing me message no workflow that have already worked for this object.i have created 1 more purchase order taking reference of this purchase order means both are same same message for this po also. it was happening because event linkage for the business object bus2012 is not activated but now it is enabled and i have created third purchase order with reference to above po means this third po is also same as above 2 no change other than po number but for this workdflow is getting triggered . now i want to trigger workflow for orignal first po but for my first po it is showing me same message that no workflow that have already worked for this object. what i have to do to trigger workflow for this po. i have performed this steps in test system. i have workflow number

    Hello !
          You can trigger the workflow from SWUE.Enter bus2012 and created for object type and event respectively.
          Click object key button where enter the purchase order number which have been already created.
          But, why do you want to trigger the workflow again for already created purchase order ?
    Regards,
    S.Suresh

  • Bapi to create purchase order

    Hi Experts,
                    I need to find a bapi to put purchase orders using co08.Please let me know if some bapi or function module exists there for the same.
    Thanks in advance

    See th Business object BUS2012
    u can see all bapis for Purchase order.
    BAPI_PO_CREATE
    BAPI_PO_CREATE1 to create purchase order.
    <b><REMOVED BY MODERATOR></b>
    Regards,
    Vimal
    Message was edited by:
            Alvaro Tejada Galindo

  • How to create purchase order using SharePoint Custom List

    Hi All,
    Can you please provide some example or link to create Purchase Order using SharePoint List / SharePoint Designer.
    Thanks

    Hi,
    It would be difficult to achieve what you want with the OOTB features of only one list.
    Per my understanding, there would be two main functionalities in the solution you want:
    1. Calculate and display the “Balance Qty” dynamically based on the values of “Order Qty” and “Deliver Qty”;
    2. Trace the “Deliver Date” and “Deliver Qty” as per “Purchase No”;
    As a workaround, I would suggest you create two lists as below:
    1. List “Orders”: Saving the upcoming orders per “Purchase No”, one “Order Qty” related to one unique “Purchase No”.
    Columns in this list:
    Purchase No(Number);
    Order Date(Date);
    Order Qty(Number);
    2. List “Deliveries”: Recording each delivery, one “Deliver Qty” to one unique existing “Purchase No” in list “Orders”.
    Columns in this list:
    Purchase No(Lookup “Purchase No” in list “Orders”);
    Order Date(Additional Lookup column along with “Purchase No”);
    Order Qty(Additional Lookup column along with “Purchase No”);
    Deliver Date(Date);
    Deliver Qty(Number);
    Balance Qty(Number);
    More information about
    Lookup column in SharePoint List:
    http://msdn.microsoft.com/en-us/library/office/ff728095(v=office.14).aspx
    http://zimmergren.net/technical/sp-2010-how-to-relational-lists-in-sharepoint-2010
    In the “Deliveries” list, we can trace each “Deliver Qty” and “Deliver Date” easily by filtering the “Purchase No” column in the list view page.
    For the dynamic values in “Balance Qty” column, Event Receiver with custom code would be needed as we will need to query the “Order Qty” in “Orders” list and all the
    existing “Deliver Qty” value per “Purchase No” in “Deliveries” list.
    An idea about
    how to implement a Purchase Order system in this blog would be helpful:
    http://ethan-deng.blogspot.jp/2013/03/purchase-order-management-system.html
    Best regards,
    Patrick
    Patrick Liang
    TechNet Community Support

  • Change/Create purchase order with customer BSART via CIF

    Hi,
    we create Purchase Orders in SCM SNP.  Those POs are passed via CIF to R/3, but the Purchase orders should be created with a customer BSART.
    In SCM the POs currently use the standard ATPCategories. I found an exit in CIF_PO_INBOUND where you can change BSART, but at this point there is no access to the data from APO.
    Has anybody already implemented such a scenario?

    Hi Michael,
    I used CIF outbound user exit from APO , for filtering purchase requisions going to SAP R/3.
    You are creating purchase oders in SCM APO and transferring the same to SAP R/3 / ECC through CIF.
    We may have two options : Change the data before publishing to SAP R/3 from APO. This happens in APO , outbound .
    Otherwise we can change the data in the PO before it is created in SAP R/3 , for this we use user exit inbound SAP R/3.
    You have option of changing or enahancing purchase order data inbound in SAP R/3, before the PO is created in SAP R/3.
    The enhancement is CIFPUR02.
    With this enhancement, you can change purchase order data from your APO system before a purchase requisition or purchase order is created in the ERP system
    The enhancement contains the following components:
    EXIT_SAPLCPUR_001
    You can use this enhancement to change purchasing data (purchase requisitions, purchase orders) in ERP inbound. To do this, you can change the existing transfer data or include additional customer-specific data in your own tables.
    Other enhancements in the same
    EXIT_SAPLMEPI_004
    With this enhancement, you can change the header data of a purchase order before it is created in the ERP system.
    The following data can be changed:
    Document type (parameter CP_BSART)
    EXIT_SAPLMEPI_007
    You can use this enhancement to specify the document type of a purchase requisition or purchase order when they are created in the ERP system (parameter CP_BSART).
    There are other ehancements which I have not listed.
    I assume you can create an enhancemnet projects for incorporating the above enhancements in CMOD / SMOD transactions.
    I hope this helps you.
    Please confirm.
    Regards
    Datta

  • Predefined object type for Purchase order release stratergy

    dear experts,
    There are already predefined object type for purchase order like bus2012 where i can create new events and methods. I want to know is there any predefined objects for purchase order release strategy. The requirement is there i want to define method, that should display the po release screen. If i bind this method with work flow template, mail should be triggered and if i click the mail po release screen should be opened for respective material...
    regards,
    Kandhan G

    Hello
    I'm using the BUS2012 Object type in workflow task but in simulation the task run correct but in the transaction when modify a purchase orden the task send an error...
    maybe the error is similar...did you solve this problem?..
    Thanks!
    Wladimir E.
    [email protected]

  • MRP automatic create Purchase Order ?

    Is anybody knows can MRP create Purchase Order directly skip P.R ?
    Thanks !

    Hi,
    This is possible through PR only.
    Tick the automatic PO and Source List fields in purchase view of the material master for the vendors on whom you would like to release PO automatically. Create a purchase info record. Create source list. In the last column in the details screen of the source list check the field relevant for MRP set the correct parameters for running MRP. But PO can not be created automatically after MRP run.
    The automatic PO creation flag enables you to run a batch job that will convert all selected Purchase Requisitions to be converted Purchase Orders in the background.
    You may consider scheduling agreements if you want MRP to kick out Purchase Orders. Set the flag in the source list for the scheduling agreement to "2" enabling MRP to kick out delivery schedules for future requirements. If you want to fix the schedule within a certain period you have two options.
    1. Using firm zone - firms all orders within this period . Refer additional data screen of the scheduling agreement at the vendor material level.
    2. Planning time - all new orders outside of the planning time fence - refer MRP 1 view of the material master
    Above document i cpied from link <b>Arif Mansuri  <b>New to Materials Management / Warehouse Management?</b></b>
    Raghu

  • Could not create Purchase Order Stock Transfer Order

    Hi Expert!
    Need your help.
    User could not make Could not create Purchase Order Stock Transfer Order for new plant 1075 & 1076 at P05 with error message Not posible to determine shipping data for material. Our new vendor are 510022060 for new plant 1075 and 510022061 for new plant 1076.
    The problem was caused by the missing STO setup for these two plant 1075 and 1076, as no customer code being referred.
    Now i got the customer number for these two plants but how to set it up in configuration? Please guide me step by step.

    Hi Crystal,
    The following customising need to be carried out for Inter Company Stock Transfer.
    Path : sproMaterials ManagementPurchasing-Purchase OrderSet up Stock Transport Order
    Define Shipping Data for Plants :
    For the Supplying plant (1) the Sales Org data to be maintained.
    For the Receiving plant (2) the Customer No to be maintained.
    Create Checking Rule - U can use existing one Eg : B
    Define Checking Rule : Use Standard one Eg :01 linked to B.
    Assign Delivery Type and Checking Rule -- For the Supplying Plant (1) and document type NB use the delviery type NLCC and Checking Rule B.
    Assign Document Type, One-Step Procedure, Underdelivery Tolerance :
    For the supplying Plant (1) and Receving Plant (1) ; assign the document type : NB.
    Points to be noted :
    The Material should exists in both the plants ( 1 & 2 ) with the sales view maintained . Note that the Loading grp / Transporting Grp is mantaory in Sales Views.
    The Vendor is to be assigned to the supplying Plant (1 ) in Purchasing View of Vendor Master.
    For that click on Extras - Add Purchasing data in Purchasing view of Vendor Master (XK02 )
    Do maintain the customer in Control data of Vendor Master.
    Do maintain the Vendor in Control data of Customer Master.
    Also note that shipping conditions are maintained in the Customer Master . The same can be found in Sales Area - Shipping Tab.
    Shipping Point determination :
    SPROLogistics ExecutionShippingBasic Shipping FunctionsShipping Point and Goods Receiving Point Determination--Assign Shipping Points ( For a particular Shipping condition/ Loading Grp /Plant - the shipping point is assigned ).
    Regards
    Ramesh Ch

  • How to hide some buttons like CREATE PURCHASE ORDER, COPY, EDIT from POWL?

    In SRM 7 ECS we need to hide some buttons like CREATE PURCHASE ORDER, COPY, EDIT from POWL"s. We can do some manipulation via security but we need to make a few buttons invisible without security. Appreciate any advice. Thanks.

    Hi Ashwanin
    To make read only
    Below are the steps to Hide the buttons in POWL table
    1. if you want to Gray out the Buttons
        IMG > SRM SERVER> Cross Application Basic Settings --> Extensions and Field Control. There you will find a node to control   Actions. based on the object type choose your option and make it as read only
    To Make invisible
    1.If you want to  make invisible  the button .
    IMG > SRM SERVER> Cross Application Basic Settings --> Powl and Advance Search - > Adjust powl layout ,search criteria and push button (OR) t-code :   /SAPSRM/POWL_CUST
    2.choose the POWL type for the POWl table
    3.click on Action node , you will find all the acction assigned for the POWL table ,delete the entry which you want to make invsible and save it
    4 .Now run the report POWL_D01 and provide powl type in the selection criteria and deleate the catche quries
    Regards
    chinnaiya P
    Edited by: chinnaiya pandiyan on Jun 27, 2011 3:12 PM

  • Inputs requried to create purchase order report from flat file

    inputs requried to create purchase order report from flat file

    At a guess, I'd say purchase order data.
    If you don't give us a clue what you are actually trying to do we can't really help you too much.
    Do you want to call a BAPI?  Do a BDC?  Use an IDOC?  Or just generally muck up the system by doing inserts into the purchasing tables?
    No doubt if you tell us, you'll get lots and lots of suggestions.
    Gareth.

  • Can we create purchase order through report programming?

    hi experts.....
    can we create purchase order through report programming?If yes plz give me the thread details?

    Hi,
    Use this code in a program by using a BAPI function module
    Anothe rway is using classical/ALV report using call transaction from a report for changing the PO
    loop at i_header.
        header-ref_1         = i_header-legacy.
        headerx-ref_1        = c_x.
        header-doc_type      = i_header-bsart.
        headerx-doc_type     = c_x.
        header-comp_code     = i_header-bukrs.
        headerx-comp_code    = c_x.
        header-purch_org     = i_header-ekorg.
        headerx-purch_org    = c_x.
        header-pur_group     = i_header-ekgrp.
        headerx-pur_group    = c_x.
        header-vendor        = i_header-lifnr.
        headerx-vendor       = c_x.
        concatenate i_header-bedat+4(4)
                    i_header-bedat+0(2)
                    i_header-bedat+2(2)
                    into header-doc_date.
        headerx-doc_date     = c_x.
        header-created_by    = i_header-ernam.
        headerx-created_by   = c_x.
        header-currency      = i_header-waers.
        headerx-currency     = c_x.
        concatenate i_header-kdatb+4(4)
                    i_header-kdatb+0(2)
                    i_header-kdatb+2(2)
                    into header-vper_start.
        headerx-vper_start   = c_x.
        loop at i_items where legacy = i_header-legacy.
          item-po_item            =  i_items-ebelp.
          itemx-po_item           =  i_items-ebelp.
          itemx-po_itemx          =  c_x.
          if i_header-bsart = 'NB'.
            item-material            =  i_items-ematn.
            itemx-material           =  c_x.
            schedule-quantity        =  i_items-menge * 1000.
            schedulex-quantity       =  c_x.
          else.
            item-short_text          = i_items-ematn.
            itemx-short_text         = c_x.
            item-matl_group          = '1000'.
            itemx-matl_group         = c_x.
            schedule-quantity        =  '1'.
            schedulex-quantity       =  c_x.
          endif.
          item-plant               =  i_items-werks.
          itemx-plant              =  c_x.
          schedule-po_item         = i_items-ebelp.
          schedule-sched_line      = '1'.
          schedulex-po_item        = i_items-ebelp.
          schedulex-sched_line     = '1'.
          schedulex-po_itemx       = c_x.
          schedulex-sched_linex    = c_x.
          concatenate  i_items-eildt+0(2)
                       i_items-eildt+2(2)
                       i_items-eildt+4(4)
                       into schedule-delivery_date.
          schedulex-delivery_date  =  c_x.
          item-price_unit          =  i_items-peinh * 100.
          itemx-price_unit         =  c_x.
          item-tax_code            =  i_items-mwskz.
          itemx-tax_code           =  c_x.
          item-shipping            =  i_items-evers.
          itemx-shipping           =  c_x.
          account-po_item          = i_items-ebelp.
          accountx-po_item         = i_items-ebelp.
          accountx-po_itemx        = c_x.
          if i_header-bsart = 'FO'.
            item-pckg_no  = sy-tabix.
            itemx-pckg_no = 'X'.
            limits-pckg_no        = sy-tabix.
            limits-limit          = i_items-overalllimit.
            limits-exp_value      = i_items-expectedoverall.
            posrvaccessvalues-pckg_no    = sy-tabix.
            posrvaccessvalues-line_no    = '0'.
            posrvaccessvalues-serno_line = '00'.
            posrvaccessvalues-percentage = '100.0'.
            posrvaccessvalues-serial_no  = '01'.
            account-serial_no     = '1'.
            accountx-serial_no    = '1'.
            accountx-serial_nox   = c_x.
            account-quantity  = '1'.
            accountx-quantity = c_x.
            call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                input  = i_items-kostl
              importing
                output = account-costcenter.
            accountx-costcenter   = c_x.
            call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                input  = i_items-sakto
              importing
                output = account-gl_account.
            accountx-gl_account   = c_x.
            item-acctasscat       = i_items-knttp.
            itemx-acctasscat      = c_x.
            item-item_cat         = i_items-epstp.
            itemx-item_cat        = c_x.
          endif.
          append:item,itemx,schedule,schedulex,account,accountx,limits,posrvaccessvalues.
          clear :item,itemx,schedule,schedulex,account,accountx,limits,posrvaccessvalues.
        endloop.
        call function 'BAPI_PO_CREATE1'
          exporting
            poheader                     = header
            poheaderx                    = headerx
    *   POADDRVENDOR                 =
    *   TESTRUN                      =
    *   MEMORY_UNCOMPLETE            =
    *   MEMORY_COMPLETE              =
    *   POEXPIMPHEADER               =
    *   POEXPIMPHEADERX              =
    *   VERSIONS                     =
    *   NO_MESSAGING                 =
    *   NO_MESSAGE_REQ               =
    *   NO_AUTHORITY                 =
    *   NO_PRICE_FROM_PO             =
            importing
            exppurchaseorder             = ponumber
    *   EXPHEADER                    =
    *   EXPPOEXPIMPHEADER            =
            tables
            return                       = return
            poitem                       = item
            poitemx                      = itemx
    *   POADDRDELIVERY               =
            poschedule                   = schedule
            poschedulex                  = schedulex
            poaccount                    = account
    *   POACCOUNTPROFITSEGMENT       =
            poaccountx                   = accountx
    *   POCONDHEADER                 =
    *   POCONDHEADERX                =
    *   POCOND                       =
    *   POCONDX                      =
            polimits                     = limits
    *   POCONTRACTLIMITS             =
    *   POSERVICES                   =
       posrvaccessvalues            = posrvaccessvalues.
    *   POSERVICESTEXT               =
    *   EXTENSIONIN                  =
    *   EXTENSIONOUT                 =
    *   POEXPIMPITEM                 =
    *   POEXPIMPITEMX                =
    *   POTEXTHEADER                 =
    *   POTEXTITEM                   =
    *   ALLVERSIONS                  =
    *   POPARTNER                    =
        if ponumber eq space.
          loop at return where type = 'E'.
            clear buffer.
            move-corresponding return to e_return.
            concatenate i_header-legacy e_return into buffer.
            transfer buffer to p2_file.
          endloop.
          move-corresponding i_header to i_eheader.
          transfer i_eheader to p3_file.
          loop at i_items where legacy = i_header-legacy.
            move-corresponding i_items to i_eitems.
            transfer i_eitems to p4_file.
          endloop.
        else.
          commit work and wait.
        endif.
        clear:ponumber,header,headerx,item,itemx,account,accountx,limits,return,schedule,schedulex,posrvaccessvalues.
        refresh:item,itemx,account,accountx,limits,return,schedule,schedulex,posrvaccessvalues.
      endloop.
      close dataset p2_file.
      close dataset p3_file.
      close dataset p4_file.
    Regards
    Krishna

Maybe you are looking for

  • DTW Chart of Accounts

    I am attempting to Import some GL numbers using the Data Transfer Workbench.  However, I am not very familiar with oChartofAccounts Object.  Does any know what values are suppose to go under the following fields: Numerator, Name, Size, Type. I keep g

  • Multiple method signatures in an MBean

    The text formatting seems to be broken on this site. Sorry for the mass of text! I have an MBean containing some utility functions used within a custom authenticator. At the moment, there all use a single data source, but I need to extend them to use

  • Deploy error in Weblogic

    Hi: I use jbuilder to deploy the appliacation of Kodo JDO 3.0 to Weblogic ,the error message is : Deployment failed on Server myserver java.lang.NoClassDefFoundError: com/solarmetric/kodo/runtime/ObjectNotFoundException I checked the package ,and did

  • Muse 2014.1.1.6 Freezes on Save and Re-Opening Document

    I was editing and removing Paragraph Styles. Then I edited text with "local" styling (bolded and italicized type -- didn't see the need make a Character Style for that). I did a "Save." Then it freezes, will not close or quit. Force Quit necessary. A

  • Standard preview mismatch in catalog

    In the Adobe_variables_table in my LR5 catalog, the AgPreviewBuilder_standard size is 1440, as set in my prefs. But further down in the table, the SynchroniseFolder_StandardPreviewSize is 1680 (the default value?). Does this make sense to anyone? Bob