How to crreat bapi.

Dear All,
Actually i want document on "how to creat bapi"and faq on bapi, rfc, badi and smartform.
my mail id is [email protected]
Thanks
Pankaj.

Pankaj
Check this...
<a href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf">http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf</a>
<a href="http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf">http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf</a>
[url=http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE2/BCFESDE2.pdf]http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE2/BCFESDE2.pdf[/url]

Similar Messages

  • How to access BAPI in enterprise portal perspective?

    hi,I am venkat new to the portal.can anyone plz tel me how to access BAPI in enterprise portal perspective?is done through JCo or any other database connection?I hav not seen in System Landscape about BAPI access.plz give guidance about BAPI interface in enterprise portal.Hope u  will understand the question and answer the query.
    thanx in advance.
    Regards:
    Venkataramana.

    Guys,
    Herez how you call a BAPI:
         public void buildConnection(){
              try {
                        System.out.println("**** DI2 *****");
                     //      Add a connection pool to the specified system
                     //    The pool will be saved in the pool list to be used
                     //    from other threads by JCO.getClient(SID).
                     //    The pool must be explicitely removed by JCO.removeClientPool(SID)
                       com.sap.mw.jco.JCO.addClientPool( SID,         // Alias for this pool
                                             10,          // Max. number of connections
                                             "040",       // SAP client
                                             "USERNAME",   // userid
                                             "PASSWORD",  // password
                                             "EN",        // language
                                             "IPADDRESS",// host name
                                             "40" );
                     //      Create a new repository
                     //    The repository caches the function and structure definitions
                     //    to be used for all calls to the system SID. The creation of
                     //    redundant instances cause performance and memory waste.
                       repository = com.sap.mw.jco.JCO.createRepository("MYRepository", SID);
                        JCO.Client client = null;
                        client = JCO.getClient(SID);
    //                 Get a function template from the repository
                        //IFunctionTemplate ftemplate = repository.getFunctionTemplate("BAPI_CUSTOMER_GETDETAIL2");
                        IFunctionTemplate ftemplate = repository.getFunctionTemplate("YGGLB_BAPI_YGGLB9PRK_PRKDOCU");
    //                 Create a function from the template
                        JCO.Function function = ftemplate.getFunction();
    //                 Get import (of Function Module) "Parameter list"
                        JCO.ParameterList input = function.getImportParameterList();
    //                 Set inputs for import parameters
                        //input.setValue("0000009000", "CUSTOMERNO");
                        //input.setValue("0248","COMPANYCODE");
    //                 Get import (of Function Module) "Structure list".
                       //JCO.Structure importStructure = function.getImportParameterList().getStructure("CUSTOMERADDRESS");
                        JCO.Structure importStructure = function.getImportParameterList().getStructure("IM_DOCUMENTHEADER");
    //                 Set values for import parameters (of Function Module) "Structure list"                     
                        importStructure.setValue( "SA", "DOC_TYPE" );
                        importStructure.setValue( "20080910", "PSTNG_DATE" );
                        importStructure.setValue( "20080910", "DOC_DATE");
                        importStructure.setValue( "BHARDWS", "USERNAME" );
                        importStructure.setValue( "2008", "FISC_YEAR" );
                        importStructure.setValue( "FRE1", "COMP_CODE" );
    //                 Get import (of Function Module) "Table list - 1".
                        JCO.Table orderPartners = function.getTableParameterList().getTable("TBL_ACCOUNTGL");
    //                 Set values for import parameters (of Function Module) "Table list - 1"
                        //Append Row -1
                        orderPartners.appendRow();
                       orderPartners.setValue("0000000001", "ITEMNO_ACC" );
                         orderPartners.setValue("0000400100", "GL_ACCOUNT" );
                        orderPartners.setValue("H", "DE_CRE_IND" );
                        orderPartners.setValue( "ANYTHING", "ITEM_TEXT" );
                        //orderPartners.setValue( "AG", "PROFIT_CTR" );
                        orderPartners.setValue( "AIG0000007", "COSTCENTER" );
                        //Append Row -2
                        orderPartners.appendRow();
                       orderPartners.setValue("0000000002", "ITEMNO_ACC" );
                        orderPartners.setValue("0000400100", "GL_ACCOUNT" );
                        orderPartners.setValue("S", "DE_CRE_IND" );
                        orderPartners.setValue( "NOTHING", "ITEM_TEXT" );
                        //orderPartners.setValue( "AG", "PROFIT_CTR" );
                        orderPartners.setValue( "AIG0000007", "COSTCENTER" );
    //                 Get import (of Function Module) "Table list - 2".
                        JCO.Table orderItems = function.getTableParameterList().getTable("TBL_CURRENCYAMOUNT");
    //                 Set values for import parameters (of Function Module) "Table list - 2"
                        //Append Row -1
                        orderItems.appendRow();
                       orderItems.setValue("0000000001", "ITEMNO_ACC" );
                        orderItems.setValue("USD", "CURRENCY" );
                        orderItems.setValue( "2000", "AMT_DOCCUR" );
                        //Append Row -2
                        orderItems.appendRow();
                       orderItems.setValue("0000000002", "ITEMNO_ACC" );
                        orderItems.setValue("USD", "CURRENCY" );
                        orderItems.setValue( "2000", "AMT_DOCCUR" );
    //                 Execute client
                        client.execute(function);
    //******************Start to work on fetching values now********************************
    //                 Get export (of Function Module) "Structure list".
                        /*JCO.Structure returnStructure = function.getExportParameterList().getStructure("CUSTOMERADDRESS");
                        JCO.Structure returnStructure2 = function.getExportParameterList().getStructure("CUSTOMERGENERALDETAIL");
                        returnStructure.getString("NAME");
                        returnStructure2.getString("ENTERED_BY");*/
    //                 Get export (of Function Module) "Table list"./// Create a new template if fetching table data from a different function module than above
                        //IFunctionTemplate ftemplateTable = repository.getFunctionTemplate("BAPI_CURRENCY_GETLIST");
                        //JCO.Function functionTable = ftemplateTable.getFunction();
                        //client.execute(functionTable);
                        JCO.Table table_return = function.getTableParameterList().getTable("RETURN");
                        Vector tbl = new Vector();
                        Vector row = new Vector();
                        Vector colNames = new Vector();
                        //Loop over all rows
                        do {
                        //Loop over all columns in the current row and add all those colums values to the current row
                        for (JCO.FieldIterator e = table_return.fields();
                             e.hasMoreElements();
                             JCO.Field field = e.nextField();
                             row.add(field.getString());
                             System.out.println(field.getName() + ":\t" + field.getString());
                             } // end for
                             //Add this newly built row to the table     
                             tbl.add(row);
                             } while (table_return.nextRow());
                             table_return = null;
                             table_return = function.getTableParameterList().getTable("RETURN");
                             table_return.nextRow();
                             for (JCO.FieldIterator e = table_return.fields();
                             e.hasMoreElements();
                             JCO.Field field = e.nextField();
                             colNames.add(field.getName().toString());
                        //DefaultTableViewModel dtvModel = new DefaultTableViewModel(tbl, colNames);
                        //beanObj.setModel(dtvModel);
                             System.err.println("getting value for you from session in Get Data 1:-");
                             JCO.releaseClient(client);
                        //     return dtvModel;
                   catch (JCO.Exception ex) {
                     System.out.println("Caught an exception: \n" + ex.getMessage());
                   }catch (Exception e){
                        System.out.println("Final Message" + e.getMessage());

  • How to use bapi response in XI

    HI ALL,
             Can any one suggest me, how to use bapi response in XI as a sender.
    I m using bapi BAPI_BCA_BANKSTATEMENT_EXECUTE , I am executing  this bapi manually ,but want to use this BAPI RESPONSE in XI as a sender and map it with receiver.
    can i have any idea about how to do it, or can i have the idoc which is used by this bapi BAPI_BCA_BANKSTATEMENT_EXECUTE.
    THANX
    HONEY

    Hi Honey,
    Have a look at these
    -Configuring the Sender RFC Adapter - step by step
    /people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step
    -Troubleshooting - RFC and SOAP scenarios
    /people/shabarish.vijayakumar/blog/2008/01/08/troubleshooting--rfc-and-soap-scenarios-updated-on-20042009
    -sender RFC (forum thread)
    Is it possible to use the RFC sender adapter for asynchronous calls?
    Regards,
    Sreenivas

  • From rfc how to call bapi

    Hi
    How to call BAPI FM's from RFC ??
    thanks
    kumar

    Hi Palnati,
                      Use statement  :
                      Call FUNCTION     'Bapi................'
                       DESTINATION     Dest(RFC destination in TCODE SM59)
                         EXPORTING      f1 = …
                                                    f2 = …
                         IMPORTING      f3  = …
                         TABLES            T1 = …
                         EXCEPTIONS ……….
    Reward points if helpful.
    Regards,
    Hemant

  • How to use BAPI with Decision Dialogue

    Hi Gurus
    would you please let me know how to use BAPI with decision dialogue in guided procedure .
    I have a BAPI checking logon credentials for the user . how to use this BAPI for making decisions that is if the logon is correct then perform one process else go to logon screen again .
    Thanks in advance
    Regards Namita

    Hi Namita,
    1. Follow the steps mentioned in section <a href="http://help.sap.com/saphelp_crm50/helpdata/en/33/198141f906040de10000000a1550b0/frameset.htm">Exposing an RFC-Enabled Function Module as a Callable Object</a> to use the BAPI as a Callable Object.
    2. Follow the steps mentioned in tutorial # 93 and 93a in the CAF Tutorial Center for the decision part.
    Hope these helps.
    Nilay

  • How to use BAPI function module for maintaing product type to material

    Hi,
    Can you pls suggest me how to use BAPI Fuction module CCAP_REV_LEVEL_MAINTAIN
    for maintaining the product type for the material using change number.
    Pts will be rewarded.
    Best Regards,
    Padhy

    Hi,
    Can you pls suggest me how to use BAPI Fuction module CCAP_REV_LEVEL_MAINTAIN
    for maintaining the product type for the material using change number.
    Pts will be rewarded.
    Best Regards,
    Padhy

  • How to use Bapi

    Hi
    How to use bapis
    BAPI_COMPANYCODE_GET_PERIOD
    BAPI_CCODE_GET_FIRSTDAY_PERIOD'
    BAPI_GL_ACC_GETPERIODBALANCES'

    BAPI_COMPANYCODE_GET_PERIOD:
    To retrieve the fiscal year variant for a given date u can use the following function module
    Retrieve fiscal year and period
    The below code shows how to use function modules BAPI_COMPANYCODE_GET_PERIOD and
    DETERMINE_PERIOD to retrieve fiscal year and fiscal period for a specific date.
    *: Report: ZFISCALYR :
    *: Author: www.SAPdev.co.uk :
    *: Date : 2004 :
    *: Description: Demonstrates how to return the corresponding fiscal :
    *: year and posting period for a company code and posting :
    *: date or posting date and fiscal year variant. :
    REPORT zfiscalyr NO STANDARD PAGE HEADING.
    TABLES: ekko.
    PARAMETERS: p_bukrs TYPE ekko-bukrs,
    p_bedat TYPE ekko-bedat.
    DATA: gd_fiscalyr TYPE bapi0002_4-fiscal_year,
    gd_fiscalp TYPE bapi0002_4-fiscal_period.
    DATA: gd_fiscalyr2 TYPE T009B-BDATJ,
    gd_fiscalp2 TYPE bapi0002_4-fiscal_period.
    DATA: gd_periv TYPE t009-periv.
    *START-OF-SELECTION.
    START-OF-SELECTION.
    get fiscal year and period - (requires date and company code)
    CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
    EXPORTING
    companycodeid = p_bukrs
    posting_date = p_bedat
    IMPORTING
    fiscal_year = gd_fiscalyr
    fiscal_period = gd_fiscalp.
    Alternative fiscal year function module
    - (requires date and fiscal year variant code from T009 table)
    gets first entry in fiscal year variant table (will need to choose
    correct one from table rather than just using first entry)
    SELECT SINGLE periv
    FROM t009
    INTO gd_periv.
    get fiscal year and period
    CALL FUNCTION 'DETERMINE_PERIOD'
    EXPORTING
    date = p_bedat
    PERIOD_IN = '000'
    version = gd_periv
    IMPORTING
    period = gd_fiscalp2
    year = gd_fiscalyr2
    EXCEPTIONS
    period_in_not_valid = 1
    period_not_assigned = 2
    version_undefined = 3
    OTHERS = 4.************************************************************************
    *END-OF-SELECTION.
    END-OF-SELECTION.
    WRITE:/ 'From function module: BAPI_COMPANYCODE_GET_PERIOD',
    / 'Fiscal year is:', gd_fiscalyr,
    / 'Fiscal period is:', gd_fiscalp.
    SKIP.
    WRITE:/ 'From function module: DETERMINE_PERIOD',
    / 'Fiscal year is:', gd_fiscalyr2,
    / 'Fiscal period is:', gd_fiscalp2.
    how to get the fiscal year
    BAPI_CCODE_GET_FIRSTDAY_PERIOD:
    CALL FUNCTION 'BAPI_CCODE_GET_FIRSTDAY_PERIOD'
    EXPORTING
    companycodeid = v_bukrs
    fiscal_period = marv-lfmon
    fiscal_year = marv-lfgja
    IMPORTING
    first_day_of_period = v_postdate
    return = i_return1.
    BAPI
    function module which could calculate the previous month's start date.....
    BAPI_GL_ACC_GETPERIODBALANCES:
    Transactions or BAPI for GL account
    Please give me reward point...

  • How to use BAPI to add a new version for a claim number in WTY transaction.

    How to use BAPI to add a new version for a claim number in WTY transaction.
    I am using  function module " BAPI_WARRANTYCLAIM_ADD_VERSION ".
    It needs to copy all contents of previous version to a new version.
    While doing so i am unable to copy fields like valic valoc etc. Any ways by which  i can copy this values.
    WTY will update PNWTYH , PNWTYV and PVWTY tables.
    Thanking you,
    Lokesh.

    Hi Vishnu,
    You can do that through EEWB. Please go through SAP Note 484597. You would get the details of using Easy Enhancement Work bench.
    Rewards point if you think this info is useful
    Regards,
    Dipender Singh

  • Will you tell me how to use BAPI "L_TO_CREATE_POSTING_CHANGE",please?

    Will you tell me how to use BAPI "L_TO_CREATE_POSTING_CHANGE" ,please?
    Is lt06 bapi "L_TO_CREATE_POSTING_CHANGE"&#65311;

    just do a where used list of the FM and see how its used in those programs.
    one of the programs where it is used = RLLQ0200
    Regards
    Raja

  • How to create Bapis step by step

    Hi.
    Can u tell me how to create Bapi step by step with a sample program..

    Copy-paste from http://www.sap-img.com/abap/bapi-step-by-step-guidance.htm
    has been reported to SCN Moderators, along with all those who are providing links.
    pk

  • How to use BAPI wrappers

    Hi,
    We are developing our first mobile application for laptops with NWDS 7.1. Following the Developer's Guide, we have our application with a created data object model with data objects from DOE and its component (views, controller and so on).
    The data object from the DOE has three BAPI wrappers.
    How are these BAPI wrappers invoked from our application, for instance when a button is clicked into a view?
    Thanks in advance,
    Samantha.

    Hi Samantha,
    In very simple words , i would explain Bapi wrappers as an interface between the middleware (where data is present in CDS) and the backend(eg: ECC or CRM etc).
    The complete cycle goes like this :
    => When a receiver(mobile device) create/updates/deletes a data object instance in its local store and does a synchronization,
    a corresponding request is sent to the middleware.
    =>Middleware processes the request i.e it checks for any conflicts detection to ensure that multiple receivers are not causing an inconsistency by parallel updates of the same instance .
    =>If there is no conflict then it invokes the corresponding BAPI Wrapper to perform the required operation(create/update/delete) in the backend.
    => Backend then validates and confirms the create/update/delete and also updates the data as required.
    =>Once confirmation of validation and update is received by the middleware it sends a confirmation back to the receiver(mobile device) which initiated the create/update/delete request.Also the data is persisted in the CDS.
    => The receiver then commits the create/update/delete permanently into its local data store.
    =>If a rejection was received due to conflict or validation failure, then the
    receiver has to rollback the create/update/delete.
    =>In case the modification request leads to an update of backend data, middleware checks if the
    Subscription state is modified and if it is needed then subscriptions will be recalculated so that other receivers subscribed to the data object also receive the updated data object Instance.
    I hope this would clarify your query.
    Thanks & Regards
    Shweta Soni
    Edited by: Shweta Soni on Mar 10, 2010 12:51 PM

  • Hello !  pls give some ti[ps how to use bapi's for data uploading?

    hello !
      pls give some ti[ps how to use bapi's for data uploading?
    regards,
    Arjun

    Hi,
    See the below report extract:
    where it_data is having uploaded data.
    LOOP AT<b> it_data</b> INTO wa_data.
        line_count = sy-tabix.
        "Date Validation
        CONCATENATE wa_data-uplft_date4(4) wa_data-uplft_date2(2) wa_data-uplft_date+0(2)
        INTO wa_data-uplft_date.
        "READ TABLE it_ekko INTO wa_ekko WITH KEY lifnr = wa_data-vendor.
        LOOP AT it_ekko_temp INTO wa_ekko_temp WHERE lifnr = wa_data-vendor.
          IF wa_ekko_temp-kdatb <= wa_data-uplft_date AND wa_ekko_temp-kdate >= wa_data-uplft_date.
            MOVE-CORRESPONDING wa_ekko_temp TO wa_ekko.
            APPEND wa_ekko TO it_ekko.
          ENDIF.
        ENDLOOP.
        "IF sy-subrc = 0 AND wa_ekko-kdatb <= wa_data-uplft_date AND wa_ekko-kdate >= wa_data-uplft_date.
        LOOP AT it_ekko INTO wa_ekko.
          wa_data_header-pstng_date = wa_data-uplft_date.
          wa_data_header-doc_date = sy-datum.
          wa_data_header-bill_of_lading = wa_data-bill_of_lad.
          wa_data_header-ref_doc_no = wa_data-del_no.
          CONCATENATE wa_data-header_text1 '-'
                      wa_data-header_text2 '-'
                      wa_data-header_text3 '-'
                      wa_data-header_text4
                      into wa_data_header-HEADER_TXT.
          IF wa_data-indicator = 'Y'.
            wa_data_item-material = '000000000000200568'.
          ELSE.
            wa_data_item-material = '000000000000200566'.
          ENDIF.
          LOOP AT it_ekpo INTO wa_ekpo WHERE ebeln = wa_ekko-ebeln AND matnr = wa_data_item-material.
            "Collect Item Level Data
            wa_data_item-plant = '1000'.
            wa_data_item-stge_loc = '1001'.
            wa_data_item-move_type = '101'.
            wa_data_item-vendor = wa_data-vendor.
            wa_data-qnty = wa_data-qnty / 1000.
            wa_data_item-entry_qnt = wa_data-qnty.
            wa_data_item-po_pr_qnt = wa_data-qnty.
            wa_data_item-entry_uom = 'KL'.
            wa_data_item-entry_uom_iso = 'KL'.
            wa_data_item-orderpr_un = 'KL'.
            wa_data_item-orderpr_un_iso = 'KL'.
            wa_data_item-no_more_gr = 'X'.
            wa_data_item-po_number = wa_ekpo-ebeln.
            wa_data_item-po_item = wa_ekpo-ebelp.
            wa_data_item-unload_pt = wa_data-unload_pt.
            wa_data_item-mvt_ind = 'B'.
            APPEND wa_data_item TO it_data_item.
            CLEAR wa_data_item.
          ENDLOOP.
          CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
            EXPORTING
              goodsmvt_header = wa_data_header
              goodsmvt_code   = goodsmvt_code
              testrun         = 'X'
            TABLES
              goodsmvt_item   = it_data_item
              return          = return.
          READ TABLE return INTO wa_return WITH KEY type = 'S'.
          IF sy-subrc <> 0.
            DESCRIBE TABLE return LINES sy-tfill.
            IF sy-tfill = 0.
              CALL FUNCTION <b>'BAPI_GOODSMVT_CREATE'</b>   
            EXPORTING
                  goodsmvt_header = wa_data_header
                  goodsmvt_code   = goodsmvt_code
                  testrun         = ' '
                TABLES
                  goodsmvt_item   = it_data_item
                  return          = return.
              CALL FUNCTION <b>'BAPI_TRANSACTION_COMMIT'</b>
               EXPORTING
                 WAIT          = 'X'
              IMPORTING
                RETURN        =
            ENDIF.
          ENDIF.
          LOOP AT return INTO wa_return.
            WRITE: 'Messsage TYPE  ', wa_return-type,
                  /,'ID  ', wa_return-id,
                  /, 'Number  ', wa_return-number,
                  /, 'Message  ', wa_return-message,
                  /, 'Long Text  ', wa_return-message_v1,
                                    wa_return-message_v2,
                                    wa_return-message_v3,
                                    wa_return-message_v4,
                 /, 'Failed at line', line_count.
          ENDLOOP.
          CLEAR: wa_ekko, wa_ekpo, wa_data, it_data_item[], wa_data_header.
        ENDLOOP.
    Reward if useful!

  • HOW TO RELEASE BAPI

    Hi Dear all
    I get a problem regarding bapi,how to release bapi,
    I am getting error "OBJECT TYPE SHOULD BE TRANSPORTABLE"
    how to make bapi transportable.
    Thanx in advance
    Regards
    Poonam

    hi,
    Refer to the follwoing link....
    http://www.sap-img.com/abap/bapi-step-by-step-guidance.htm

  • How to use bapi /external service directly in application service

    Hi
    I have to use BAPI_ALM--RDER_MAINTAIN in my caf application
    i have imported it as external service.As there are problems mapping its input fields to entity service , it has to be consumed directly vai application service.
    But i ahve never done so before.Can someone give me an example as to how t do it.
    If someone can give example of how to code in the application service to call  the bapi , it would be great . as i have some time constraint.
    Thanks ,
    Points assured for help.

    Hi Vivek,
    As you asked for an example to call a bapi directly from Application Service you can follow this link.
    <a href="http://help.sap.com/saphelp_nw04s/helpdata/en/44/57fff3b10b3672e10000000a114a6b/frameset.htm">Using Generated External Proxy in Application Service</a>
    Thanks and Regards
    Avijit

  • How to use BAPI extension for updating field which is not in BAPI stracture

    I am doing a conversion for control cycle create. The data is maintained in DB Table "PKHD". i have to update 12 fields threre through BAPI "BAPI_KANBANCC_CREATE". there are 11 fields in BAPI structure. but 1 field called"BERKZ" is not there . How can i update it through EXTENSION.

    Hi ,
    in the bapi extension check one structure with name BAPIPAREX will available..
    you need to pass custom structure in that..
    ands conactenate 12 field of your structure and pass in to value1 in bapirex structure and append.
    go to se11 and enter >bapiparex> check where it is used -->see the zprogram and check how it is used the add your code according to that..
    Regards,
    Prabhudas

Maybe you are looking for

  • Table values are not visible

    Hi, I have designed the GUI, which contains JTable. Every time the table is loaded with some values dynamically, after doing some operation. The table values are first stored in the vector and set to DefaultTableModel. The DefaultTableModel contains

  • Check List For Basis Admin

    hi all, Please Send me the standard daily activity check list of Basis Admin. Thanks regards Raghvendra Bhanap

  • When is Linksys going to fix the WPS54g web interface that's crashing?

    Since the last update 6049 in September 2005 which fixed problems but also introduced a new problem. If you used Firefox or Internet Explorer 7 both will completely crash the print server. Now with Internet Explorer 6 it works fine. The problem is yo

  • Import Dialog: Copy as DNG - how to make it a default

    In the LR3 import dialog box is there a way to change the default to "Copy as DNG" instead of "Copy" I always like to convert to DNG on import. It would save me time if I did not have to click on "Copy to DNG". Thanks, Henry

  • Printing to PDF form Safari

    I am creating PDF's of web pages, but noticing none of the CSS styles are parsed to the PDF layout. The resulting file is an page without styles, why doesn't the PDF writer create the page as it looks on screen? Any ideas? Thanks Rich