Error attempting to process LSMW generated BDC in background via SM35

In our CRM 4.0 system, I used LSMW to create a recording of the Contact Person load transaction (BP). If I process the subsequent Batch Input Session via SM35 in either 'Foreground' or 'Display errors only' mode, everything works okay. If I try to process in 'Background' mode, The job fails with error DC006 - "Control Framework: Fatal error - GUI cannot be reached". My Basis resource feels that this LSMW program can not run in background.
Since I will be loading >100,000 records, I would prefer to run in Background. Does anyone know how to get around this error?
Thanks,
Tony

Hi Anthony..
I am running into the exact problem..cannot run the recording in background....it works fine in foreground....well i dont have more than 20000 records, so i guess i can still do it in foreground..
I had the idea of using IDOCS..but its a little too complicated and its not worth all the mapping and conversion for just 15 fields that i have recorded and want to load..
I beleive that you have used some BAPI's to load data...
I would appreciate if you can help me with those BAPI's. I need to get done with this loads early next week.. So it wud be great if you share the BAPI's that you have used..
Thanks in advance..
Binoy

Similar Messages

  • The following error text was processed in the system IDS : Access via 'NULL' object reference not possible.

    Hi all ,
    Im getting the below error , actually recently i created my own custom table zstudent, later i wrote select query to fetch data from the same and dump at internal table and then bind this to the table node.
    But im getting below error, even i removed the select query still same error is occuring.
    Error when processing your request
      What has happened?
    The URL http://********00.*****b.com:8000/sap/bc/webdynpro/sap/zdemo_student/ was not called due to an error.
    Note
    The following error text was processed in the system IDS : Access via 'NULL' object reference not possible.
    The error occurred on the application server axsids00_IDS_00 and in the work process 0 .
    The termination type was: RABAX_STATE
    The ABAP call stack was:
    Method: WDDOINIT of program /1BCWDY/YUSM2Q74A826Y0JY1I4V==CP
    Method: IF_WDR_COMPONENT_DELEGATE~WD_DO_INIT of program /1BCWDY/YUSM2Q74A826Y0JY1I4V==CP
    Method: DO_INIT of program CL_WDR_DELEGATING_COMPONENT===CP
    Method: INIT_CONTROLLER of program CL_WDR_CONTROLLER=============CP
    Method: INIT_CONTROLLER of program CL_WDR_COMPONENT==============CP
    Method: INIT of program CL_WDR_CONTROLLER=============CP
    Method: INIT of program CL_WDR_CLIENT_COMPONENT=======CP
    Method: INIT of program CL_WDR_CLIENT_APPLICATION=====CP
    Method: IF_WDR_RUNTIME~CREATE of program CL_WDR_MAIN_TASK==============CP
    Method: HANDLE_REQUEST of program CL_WDR_CLIENT_ABSTRACT_HTTP===CP

    Thanks Rama,
    Acutally i accidentally commented the lo_nd_student = wd_context ....etc
    this line was commented .
    i have one small requirement to fetch data from local customised table and fill the same to internal table and bind that to table node.
    my table node is student having attributes as name , city and number , all are of type strings.
    now i created one custom table zstudent having ID - char of length 10,
    name of type string
    city of type string
    num of type string
    i have inserted records
    but when i use select query to fill data from this zstudent to my internal table of type lt_student type wd_this->elements_student ,
    im getting same above error.

  • Error attempting to process incomplete inbound FTP file

    We are currently receiving some large files into PI via FTP.  Here is the communication channel definition:
    Adapter Type:  File
    Transport Protocol:  File System (NFS)
    Message Protocol:  File
    Adapter Engine:  Integration Server
    Poll Interval (secs):  600
    Msecs to Wait Before Modification Check:  10000
    Our issue is that at times PI attempts to process the file before it has completed uploading, and throws this error:  "Attempt to send file failed because file was modified during processing. 2428928 bytes expected, 2675033 bytes found. Trying to resend file".  The next time the file system is polled for new files, PI selects and processes the file successfully. 
    Two questions:
    1)  Is it possible for PI to wait until the upload has fully completed before it attempts to process the file?  For example, can I run an operating system command before message processing which attempts to put a lock on the file and waits until it is successful before the file is processed?
    2)  We have implemented alert monitoring from Solution Manager for errors in PI.  These cases are throwing an alert upon the initial error, but these turn out to be false since the message is eventually processed successfully.  Can I configure Solution Manager to bypass this type of error?
    Thank you very much for your help with this.

    Hi Mark,
    >>>1) Is it possible for PI to wait until the upload has fully completed before it attempts to process the file? For example, can I run an operating system command before message processing which attempts to put a lock on the file and waits until it is successful before the file is processed?
    there is an easy way to achive it
    put the file with a different name (let's say .lfg extension for flag)
    after the application finishes uploading make sure it will also change the name to .xml etc.
    inside PI file adapter specify to upload only .xml extensions - this way it will only take the whole file
    >>>>2
    as for solman question if you do like I suggest you will not have the errors in solman
    Regards,
    Michal Krawczyk

  • Error attempting to process reverse file -- XI_J2EE_ADAPTER_SOAP issue

    Dear All experts,
    Request you to advise to resolve the below issue.
    While sending the file ( xml data ) from XI sourse system we are getting the below error message in the audit log.
    Error MP: Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException:
    unable to create a socket: java.io.IOException: unable to create a socket
    Error Exception caught by adapter framework: unable to create a socket
    Error Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed,
    due to: com.sap.aii.af.ra.ms.api.RecoverableException: unable to create a socket: java.io.IOException: unable to create a socket.
    Status ==> System Error
    Error Category ==> XI_J2EE_ADAPTER_SOAP
    Error Code ==> GENERAL_ERROR
    Quality of Service ==> Exactly Once

    Hi,
         so you have created the soap as sender and provided the WSDL to the other application for consuming the same right ?
    one way to do is a test from the test tab of the Runtime Work Bench and select adapter engine and there test mesage tab button
    and provided the payload along with the needed details and see whether the interface is working or not..will get you know...
    Later use some XML SPY or SOAP UI tools for testing the WSDL which going to provide for the other applications..
    if my  understanding is wrong..then provide more details of your scenario.....
    HTH
    Rajesh

  • Processing of a BDC  in background which internally triggers user exits

    Hi experts,
    I have a req. where in a BDC program would internally trigger a user exit to update values.The program is running well in the foreground and in display with errors.But in background it throws a "System error when creating a control".Can you please let me know the exact reason for this.
    Thanks and Regards,
    Anitha

    i think there is one option 'After Job' in SM36
    this might be helpful to you
    regards
    if you are creating your jobs via SM36, you should be able to to create the second job using
    'After Job' option with the 'Start Status Dependent' checkbox switched on. This way the
    second job will not start unless the first job finishes successfully.
    Message was edited by: Surpreet Singh Bal

  • Attempt to process file failed with Exception in XML Parser-format problem

    Hi all,
    Iam getting an unusual error in the J2EE stack in XI.
    And the message is:
    006-11-30 17:31:07 Error Attempt to process file failed with Exception in XML Parser (format problem?):'com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Invalid char #0xf(:main:, row:1, col:1044002)(:main:, row=1, col=1044002) -> com.sap.engine.lib.xml.parser.ParserException: Invalid char #0xf(:main:, row:1, col:1044002)' 2006-11-30 17:31:07 Error Exception caught by adapter framework: null 2006-11-30 17:31:07 Error Delivery of the message to the application using connection AFW failed, due to: RecoverableException.
    My scenerio iam posting IDOC to a flat file with content conversion in the receiver side,the mapping got executed successfully and in the audit log i found that the error was after the 'Start converting XML document content to plain text'.
    This means that error occured during content conversion of XML to the prescribed file format.
    Can anyone suggest any better approach using which we may trace the junk data in IDoc. Manual adhoc approach could take time and is error prone.
    Thanks in advance...
    karun

    Hi Bhavesh,
    Thanks for the early reply. I checked the mapping and everything is fine and the output is also in valid XML format.
    The audit log shows that the mapping got executed successfully and the error is after the step 'Start converting XML document content to plain text '. Is there any constraint in the file adapter regarding the message size for parsing.
    2006-11-30 17:30:50 Success Transfer: "BIN" mode, size 2912595 bytes, character encoding -
    2006-11-30 17:30:50 Success Start converting XML document content to plain text
    2006-11-30 17:31:07 Error Attempt to process file failed with Exception in XML Parser (format problem?):'com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Invalid char #0xf(:main:, row:1, col:1044002)(:main:, row=1, col=1044002) -> com.sap.engine.lib.xml.parser.ParserException: Invalid char #0xf(:main:, row:1, col:1044002)'
    2006-11-30 17:31:07 Error Exception caught by adapter framework: null
    2006-11-30 17:31:07 Error Delivery of the message to the application using connection AFW failed, due to: RecoverableException.
    2006-11-30 17:31:07 Success The asynchronous message was successfully scheduled to be delivered at Thu Nov 30 17:36:07 GMT 2006.
    2006-11-30 17:31:07 Success The message status set to WAIT.
    2006-11-30 17:31:08 Success Acknowledgement creation triggered for type: SystemErrorAck
    2006-11-30 17:31:08 Success Acknowledgement sent successfully for type: SystemErrorAck
    2006-11-30 17:36:08 Success Retrying to deliver message to the application. Retry: 1

  • Attempt to process file failed with java.lang.StringIndexOutOfBoundsExcep..

    Hello All,
       I am implementing file2file with file going from shared folder to FTPS server.
    I am using TLS and X.509 certificate in file receiver communication channel.
    when I implemented my scenario, this is the error its throwing :
    Success : Connect to FTP server "my ftp address", directory "/TEST/"
    Error : Attempt to process file failed with java.lang.StringIndexOutOfBoundsException: String index out of range: 3
    I know this error is caused when java expects the 3 character length string and if its getting more than that... Does any faced this kindaa problem before...Any help is greatly appreciated....Obviously even points....
    Thanks,
    Ravi

    There is no custom code at all? No mappings, no custom modules, no pre/post processing commands?
    Also, check if you get this error when sending to ftps server without certificate (or with another certificate). It may be an incompatibility issue with certificate.
    Did you import the .pfx (or .p12) file in KeyStorage Service?
    Regards,
    Henrique.

  • After attempting to process my movie, I get the following message. "The project could not be prepared for publishing because an error occurred. (OpWrErr: file already open with with write permission). Any ideas what I'm doing wrong?

    After attempting to process my movie, I get the following message. "The project could not be prepared for publishing because an error occurred. (OpWrErr: file already open with with write permission). Any ideas what I'm doing wrong?

    Hi
    Error -49 opWrErr  File already open with write permission
    Trash the preference files while application is NOT Running.
    from Karsten Schlüter
    Some users notice on exporting larger projects from within iMovie that this operation is aborted with an 'error -49'
    This issue occours only on MacOs machines using 10.7x
    try switching-off the Local Mobile Backup
    in Terminal copy/paste
    sudo tmutil disablelocal
    Re-launch Mac
    Yours Bengt W

  • Hello dps team,  A few weeks ago we renewed our dps licence. Now we want to release our newest issue but we can't. Following error message appears "At the attempt to release the folio creates an error. The process could not be started. Please try again la

    Hello dps team,
    A few weeks ago we renewed our dps licence. Now we want to release our newest issue but we can't. Following error message appears "At the attempt to release the folio creates an error. The process could not be started. Please try again later."
    Is there a problem with our dps version or any maintenance work at the servers from Adobe?
    Best,
    Oliver

    Hi Oliver,
    Please login to your DPS dashboard and contact support by clicking "Contact support" at the bottom left
    Thanks
    Lohrii

  • Process LSMW in Background

    Dear All,
    I've a requirement wehere i've to process the LSMW in background, the recording is not possible through SHDB as it gives error & exit out.
    Please let me know the method where i can execute the LSMW with all internal step in background.
    Let me know the steop & procedure to execute the above
    Thanxs in advance

    Dear Sanjeev,
    If you are choosing SESSION method for migrating data using LSMW, in the 13 step you create SESSION, for precessing session you execute 14 th step then it will automatically place cursor in SM35( SESSION) here you follow these steps.
    1) select the SESSION which was you created.
    2) here you find option for processing SESSION, from that you choose BACKGROUND.
    3) it willl display screen with required field, like date, time.
    or
    The LSMW usually has 3 or 4 steps of execution:
    1) Read Data
    2) Convert Data
    3) Generate a Session / Process the converted file or session (These two are separate steps for a LSMW with BDC session).
    If you want to schedule a job:
    A) The first two steps need the Files on Application Server. You must use App Server files in the Specify Files and Assign Files steps.
    B) The LSMW should preferably not be BDC session based. You will lose the benefit of scheduled processing, as the LSMW and Session will be two separate schedules. Sychronizing these and tracking the Sessions may be difficult.
    C) You need to note down the ABAP program names for the three steps and create the relevant variants.
    D) Then, schedule the three programs in a single job in that sequence.
    or
    You can run/schedule program /SAPDMC/SAP_LSMW_INTERFACE for scheduling any LSMW object as a job.
    Regards,
    Naveen.

  • Difference in lsmw and bdc

    What is the advantage of using lsmw instead of bdc whether there is any disadvantage in using lsmw

    Hi,
    LSMW and BDC are vastly different.
    BDC (Batch Data Communication) is a technology used for data transfer.
    it is meant for transferring data thru SAP transactions itself. when u use BDC for data transfer,
    the sequence of steps is the same as when u use standard sap transaction screens for data upload. the only difference is that u can use different options for foreground/background processing.
    LSMW on the other hand is a tool that helps migrate data from a legacy system (non-sap system ) to SAP system.
    it offers u various options to use either batch input, direct input, BAPIs or idocs.
    it involves a series of some 17-18 steps to migrate data.
    BDC:
    Batch Data Communication (BDC) is the process of transferring data from one SAP System to another SAP system
    or from a non-SAP system to SAP System.
    Features :
    BDC is an automatic procedure.
    This method is used to transfer large amount of data that is available in electronic medium.
    BDC can be used primarily when installing the SAP system and when transferring data from a legacy system (external system).
    BDC uses normal transaction codes to transfer data.
    Types of BDC :
    CLASSICAL BATCH INPUT (Session Method)
    CALL TRANSACTION
    BATCH INPUT METHOD:
    This method is also called as ‘CLASSICAL METHOD’.
    Features:
    Asynchronous processing.
    Synchronous Processing in database update.
    Transfer data for more than one transaction.
    Batch input processing log will be generated.
    During processing, no transaction is started until the previous transaction has been written to the database.
    CALL TRANSACTION METHOD :
    This is another method to transfer data from the legacy system.
    Call transaction.
    1) asynchronous processing
    2) can transfer small amount of data
    3) processing is faster.
    4) errors need to be handled explicitly
    5) data is updated automatically
    Session method.
    1) synchronous processing.
    2) can tranfer large amount of data.
    3) processing is slower.
    4) error log is created
    5) data is not updated until session is processed.
    Session method is to populate the data by filling BDC structure
    and keep as session to process from SM37 to post in appropriate Transaction.
    Call transaction method is to post the data directly into the Transaction from an Executable program.
    Features:
    Synchronous processing. The system performs a database commit immediately before and after the CALL TRANSACTION USING statement.
    Updating the database can be either synchronous or asynchronous. The program specifies the update type.
    Transfer data for a single transaction.
    Transfers data for a sequence of dialog screens.
    No batch input processing log is generated.
    For BDC:
    http://myweb.dal.ca/hchinni/sap/bdc_home.htm
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/bdc&
    http://www.sap-img.com/abap/learning-bdc-programming.htm
    http://www.sapdevelopment.co.uk/bdc/bdchome.htm
    http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
    http://help.sap.com/saphelp_47x200/helpdata/en/69/c250684ba111d189750000e8322d00/frameset.htm
    http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html
    LSMW:
    The LSM Workbench is an R/3-based tool that supports You when transferring data from non-SAP systems ("Legacy Systems") to R/3 once or periodically.
    The tool supports conversion of data of the legacy system in a convenient way. The data can then be imported into the R/3 system via batch input, direct input, BAPIs or IDocs.
    Furthermore, the LSM Workbench provides a recording function that allows to generate a "data migration object" in an entry or change transaction.
    The main advantages of the LSM Workbench:
    • Part of R/3 and thus independent of individual platforms
    • A variety of technical possibilities of data conversion:
    • Data consistency due to standard import techniques:
    Batch input
    Direct input
    BAPIs (Business Application Programming Interfaces)
    IDocs (Intermediate Documents)
    The import technique to be used in an individual case depends on the business object.
    • Generation of the conversion program on the basis of defined rules
    • Clear interactive process guide
    • Interface for data in spreadsheet format
    • Creation of data migration objects on the basis of recorded transactions
    • Charge-free for SAP customers and SAP partners
    http://help.sap.com/saphelp_nw04s/helpdata/en/87/f3ae74e68111d1b3ff006094b944c8/content.htm
    http://www.sap-img.com/sap-data-migration.htm
    http://www.scmexpertonline.com/downloads/SCM_LSMW_StepsOnWeb.doc
    http://allsaplinks.com/lsmw.html
    http://myweb.dal.ca/hchinni/sap/lsmw_home.htm
    some more links
    BDC
    http://www.sap-img.com/bdc.htm
    LSMW
    http://www.sap-img.com/sap-data-migration.htm
    http://www.sapgenie.com/saptech/lsmw.htm
    http://sapabap.iespana.es/sapabap/manuales/pdf/lsmw.pdf
    http://www.sap.info/public/INT/int/glossary/int/glossaryletter/Word-17643ed1d6d658821_glossary/L#Word-17643ed1d6d658821_glossary
    Thanks
    Manju

  • Differnce b'w lsmw and bdc

    pls tell the differnce b'w lsmw and bdc . when we use bdc and when we use lsmw .for uploading master data (ex: cusomer data ) in tosap which method s u prrefer out of thhse  4
    method scall transaction
    session input
    lsmw bapi  whic one is the better one
    when use session  method and when we use call tran sac
    which method is better for bacjground processing call tran s or session method . pls tell
    the reason
    answres as soon as possible

    Hi,
    LSMW IS JUST A TOOL TO GET THE DATA FROM A LEGACY SYSTEM.
    IN BDC WE HAVE 2 WRITE THE CODE AND CALL THE REQUIRED METHOD
    THATS IT. IN FUNCTIONALITY PERSPECTIVE THERE IS NO
    DIFFERENCE.
    BDC is Batch Data Communication. It is basically a program
    either generated by SAP after a recording or programmed by a
    abaper.Its like running the transaction manually but all the
    data is populated on the screens automatically.It is a
    little complex when the screens contain table controls.
    LSMW is legacy system migration workbench is a more user-
    friendly tool thru which one can do the same as a BDC. One
    just has to follow some 14 steps, click buttons and the data
    is set to be uploaded ….LSMW offer you 4 ways to import data
    into SAP, they are BDC, Direct Input, BAPI(BO), IDOC.
    To spell out the differences in detail:
    look at the below threads to know more
    Diff between LSmw and Bdc
    Diff. between LSMW & BDC
    Regards
    Sudheer

  • Errors in Flat files while using BDC

    *Hey Experts,*
    *I have made a BDC program which uploads an excel file into the system.Check the coding below*
    *I tried to run the same data but i received the following error at the system  status.*
    *Excel file://c:\cannot be processed .on checking in details i received this*
    *Message no. UX893*
    *Diagnosis*
    *An error occurred while attempting to process Excel file FILE://C:\Users\Administrator\Desktop\jack abaper\.*
    *Check whether:*
    *the file exists*
    *you have authorization to process the file*
    *Excel is installed and can be run*
    *System Response*
    *Excel file FILE://C:\Users\Administrator\Desktop\jack abaper\ is not processed. The activity is terminated.*
    *Procedure*
    *When the error has been corrected, restart the program.*
    *is there a way for the program to check the exact cause of error,like for my case the same data i was uploading.*
    *if it could tell me which row of data in the file is bringing this error.Apart from that I am to run this program in background not foreground ,please note of that while forgering a solution.*
    *Does anyone have a solution for this,or a better way gladly accept?*
    *Thank you my fellow abapers*
    *all help is appreciated.*
    *regds*
    *Ja*
    *Below see program>>>*
    REPORT  z_uploadbdc NO STANDARD PAGE HEADING LINE-SIZE 255.
    TYPE-POOLS: truxs.
    SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    PARAMETERS: p_file TYPE  rlgrap-filename OBLIGATORY DEFAULT 'C:\'.
    SELECTION-SCREEN : END OF BLOCK blk1.
    *&     Global Declarations
    TYPES: BEGIN OF t_datatab,
          col1(30)    TYPE c,
          col2(30)    TYPE c,
          col3(30)    TYPE c,
          END OF t_datatab.
    DATA: it_datatab TYPE STANDARD TABLE OF t_datatab,
          wa_datatab TYPE t_datatab.
    DATA: it_raw TYPE truxs_t_text_data.
    TYPES: BEGIN OF ty_material,
           matnr TYPE matnr,
           anzahl TYPE anzahl,
           eqtyp TYPE eqtyp,
           servon TYPE servon,
           serbis TYPE serbis,
           sernr TYPE serbis,
           END OF ty_material.
    DATA: it_material TYPE TABLE OF ty_material,
          wa_material TYPE ty_material,
          it_bdcdata TYPE TABLE OF bdcdata,
          wa_bdcdata TYPE bdcdata.
    Table for messages from call transaction.
    The table is automatically filled with messages from call transaction.
    DATA BEGIN OF messtab OCCURS 10.
            INCLUDE STRUCTURE bdcmsgcoll.
    DATA END OF messtab.
    DATA : WF_MESSAGE(100).
    REFRESH MESSTAB.
    *&   AT SELECTION SCREEN
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          field_name = 'P_FILE'
        IMPORTING
          file_name  = p_file.
    *include bdcrecx1.
    *&   START-OF-SELECTION
    START-OF-SELECTION.
      CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
        EXPORTING
      I_FIELD_SEPERATOR          =
          i_line_header              = 'X'
          i_tab_raw_data             = it_raw
          i_filename                 = p_file
        TABLES
          i_tab_converted_data       = it_material
        EXCEPTIONS
          conversion_failed = 1
          OTHERS            = 2.
      IF sy-subrc NE  0.
        MESSAGE ID sy-msgid
              TYPE sy-msgty
              NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    *perform open_group.
      LOOP AT it_material INTO wa_material.
        PERFORM bdc_dynpro      USING 'SAPMIEQ0' '2000'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RISA0-SERNR(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      'BU'.
        PERFORM bdc_field       USING 'RISA0-MATNR'
                                      wa_material-matnr.
        PERFORM bdc_field       USING 'RISA0-ANZAHL'
                                      wa_material-anzahl.
        PERFORM bdc_field       USING 'EQUI-EQTYP'
                                      wa_material-eqtyp.
        PERFORM bdc_field       USING 'RISA0-SERVON'
                                      wa_material-servon.
        PERFORM bdc_field       USING 'RISA0-SERBIS'
                                      wa_material-serbis.
        PERFORM bdc_field       USING 'RISA0-SERNR(01)'
                                       wa_material-sernr.
    perform bdc_transaction using 'IQ04'.
        CALL TRANSACTION 'IQ04' USING it_bdcdata
                          MODE 'A' UPDATE 'S'
                          MESSAGES into messtab.
        REFRESH it_bdcdata.
    ENDLOOP.
    *&      Form  bdc_dynpro
          text
         -->PROGRAM    text
         -->DYNPRO     text
    FORM bdc_dynpro USING program dynpro.
      CLEAR wa_bdcdata.
      wa_bdcdata-program = program.
      wa_bdcdata-dynpro = dynpro.
      wa_bdcdata-dynbegin = 'X'.
      APPEND wa_bdcdata TO it_bdcdata.
    ENDFORM.                    "bdc_dynpro
    *&      Form  bdc_field
          text
         -->FNAM       text
         -->FVAL       text
    FORM bdc_field USING fnam fval.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = fnam.
      wa_bdcdata-fval = fval.
      APPEND wa_bdcdata TO it_bdcdata.
    ENDFORM.                    "bdc_field
    perform close_group.
    Edited by: JackAbaper on Feb 8, 2012 3:11 PM
    Edited by: JackAbaper on Feb 8, 2012 3:14 PM
    Edited by: JackAbaper on Feb 8, 2012 3:15 PM

    Hi ,
    This is what you can do.
    Upload the file from presentation server to the application server through CG3Z.
    Then you can fetch the file from Application server to your BDC  program (Which you want to run in background).
    Regards,
    Chandan.

  • Differences between LSMW and BDC

    Hi All
    Please can you give me the few points about the differences between LSMW and BDC?
    Awaiting for your Responce
    Praveen

    Hai Check with the following document
    GOOD
    THERE IS THREE TYPE OF METHOD IN BDC
    BDC SESSION
    CALL TRANSACTION
    CALL DIALOG
    What is BDC or batch input
    The Batch Input is a SAP technic that allows automating the input in transactions. It lies on a BDC (Batch Data Commands) scenario.
    BDC functions:
    · BDC_OPEN_GROUP : Opens a session group
    · BDC_CLOSE_GROUP : Closes a session
    · BDC_INSERT : Insert a BDC scenario in the session
    · The ABAP statement "CALL TRANSACTION" is also called to run directly a transaction from its BDC table.
    It runs the program RSBDCSUB in order to launch automatically the session. The session management is done through the transaction code SM35.
    The object itself is maintanable through the transaction SE24.
    BDC methods:
    Method
    Description
    Parameters
    OPEN_SESSION
    Opens a session
    SUBRC (Return Code – 0 OK)
    SESSIONNAME (Session to be created)
    CLOSE_SESSION
    Closes a session
    None
    RESET_BDCDATA
    Resets the BDC Internal Table...
    None. Normally, for internal purpose…
    BDC_DYNPRO
    Handles a new screen
    PROGNAME (Name of the program)
    DYNPRONR (Screen Number)
    BDC_FIELD
    Puts a value on the screen
    FIELDNAME (Name of the field)
    FIELDVALUE (Value to be passed)
    CONSTRUCTOR
    Constructor - Initializes NO_DATA
    NODATA (No data character). The constructor is called automatically when the object is created.
    RUN_SESSION
    Launches a session with RSBDCBTC
    None
    CALL_TRANSACTION
    Calls a transaction with the current BDC Data
    MODE (Display Mode)
    UPDATE (Update Mode)
    TCODE (Transaction to be called)
    BDC_INSERT
    Inserts the BDC scenario in the session
    TCODE (Transaction to be called)
    BDC techniques used in programs:
    1) Building a BDC table and calling a transaction,
    2) Building a session and a set of BDC scenarios and keeping the session available in SM35,
    3) Building a session and lauching the transaction right after closing the session.
    BDC using Call Transaction
    BDC using Call transaction involves calling an SAP transaction in back ground from within the ABAP
    program. The process involves building an Internal BDC table containing the screen information needed to
    execute the required transaction and then passing this to the Call transaction command (See code example).
    The full procedure for creating a BDC program is as follows:
    What is the difference between batch input and call transaction in BDC?
    Session method.
    1) synchronous processing.
    2) can tranfer large amount of data.
    3) processing is slower.
    4) error log is created
    5) data is not updated until session is processed.
    Call transaction.
    1) asynchronous processing
    2) can transfer small amount of data
    3) processing is faster.
    4) errors need to be handled explicitly
    5) data is updated automatically
    BATINPUT/DIRECT INPUT
    A: Batch-inputs can not be used to fill the "delivery due list" screen because it is not a dynpro. This is a standard SAP report. A SAP report (check with "System -> Status") may be called using SUBMIT sentence with the appropriate options . It is preferred to call a report than create a Batch-input program.
    GO THROUGH THIS LINK
    http://www.guidancetech.com/people/holland/sap/abap/zzsni001.htm
    The LSM Workbench is an SAP R/3 based tool that supports the one-time or periodic transfer of data from non-SAP systems ("legacy systems") to SAP systems.
    The LSM Workbench helps you to organize your data migration project and guides you through the process by using a clear sequence of steps.
    The most common conversion rules are predefined. Reusable conversion rules assure consistent data conversion for different data objects.
    LSMW vs DX Workbench
    The LSM Workbench covers the following steps:
    Read the legacy data from one or several files (e.g. spreadsheet tables, sequential files).
    Convert the data from source format to target format.
    Import the data using standard interfaces (Batch Input, Direct Input, BAPI, IDoc).
    Experiences made in successful implementation projects have shown that using the LSM Workbench significantly contributes to accelerating data migration.
    SAP provides this tool along with documentation to customers and partners free of charge.
    Users of the LSM Workbench receive the usual support via SAP Net - R/3 Frontend (component BC-SRV-DX-LSM).
    Releases:
    Version 1.7.2 of the LSM Workbench ("LSMW 1.7.2") available
    Attention : LSMW 1.7.2 requires an SAP R/3 system with SAP R/3 4.0 or SAP R/3 4.5.
    Version 1.8.0 of the LSM Workbench (1.21mb) ("LSMW 1.8.0") available
    Attention : LSMW 1.8.0 requires an SAP R/3 system with SAP R/3 4.6.
    Version 3.0 of the LSM Workbench (1.89mb) ("LSMW 3.0") available for Web Application Server 6.10
    Attention : LSMW 3.0 requires a SAP WAS 6.10. Functionality of version 1.7.2 and 3.0 are identical !
    Version 4.0 of the LSM Workbench ("LSMW 4.0") integrated in Web Application Server 6.20
    Attention : LSMW 4.0 is an integrated part of SAP WAS 6.20.
    Thanks & regards
    Sreenivasulu P
    Message was edited by: Sreenivasulu Ponnadi

  • JWSDP1.5: wscompile error: "(should not happen): tie.generator.002

    Hi all,
    I'm working with a doc/lit webservice; I have a WSDL and I'm attempting to generate Java artefacts with wscompile. I'm using JWSDP1.5. I've had a range of errors (I'm updating an old WSDL for the Tentative Hold Protocol, see http://www.w3.org/TR/tenthold-2/). The latest, though, is problematic. The final error message is:
    error: generator error: internal error (should not happen): tie.generator.002I have included the full output from wscompile at the end of this posting; I'll post the full WSDL in a reply. Any advice would be much appreciated!
    Cheers,
    --Tim West
    Full output (from wscompile Ant task) - added linebreaks for readability
    Buildfile: C:\common\eclipse-projects\thp\build.xml
    wscompile-init:
    ANEW-generate-server-binding:
    [wscompile] command line: wscompile -d C:\common\eclipse-projects\thp\zant-build \
    -features:documentliteral,wsi -g -gen:server -keep -verbose \
    C:\common\eclipse-projects\thp\server-wscompile-config.xml -classpath (path omitted for readability)
    [wscompile] [CustomClassGenerator: generating JavaClass for: userDefinedBody]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdRequestHdr]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdHeader]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdRequestAckHdr]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdModifyRequestHdr]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdModifyResponseChoiceHdr]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdModifyGrantHdr]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdGrantHdr]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdModifyDenialHdr]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdDenialHdr]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdCancellationRequestHdr]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdCancellationResponseHdr]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdStatusQueryHdr]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdStatusResponseBody]
    [wscompile] [CustomClassGenerator: generating JavaClass for: statusStructure]
    [wscompile] [CustomClassGenerator: generating JavaClass for: holdStatusResponseHdr]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: userDefinedBody]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdHeader]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdRequestHdr]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdRequestAckHdr]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdModifyRequestHdr]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdGrantHdr]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdModifyGrantHdr]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdDenialHdr]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdModifyDenialHdr]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdModifyResponseChoiceHdr]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdCancellationRequestHdr]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdCancellationResponseHdr]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdStatusQueryHdr]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: statusStructure]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdStatusResponseBody]
    [wscompile] [LiteralObjectSerializerGenerator: writing  serializer/deserializer for: holdStatusResponseHdr]
    [wscompile] error: generator error: internal error (should not happen): tie.generator.002
    BUILD FAILED: C:\common\eclipse-projects\thp\build.xml:342: wscompile failed
    Total time: 2 seconds

    Hi again,
    The offending WSDL is below. I should add that I Googled this and couldn't find anything useful. Axis is happy with the WSDL, as is the validator at http://www.soapclient.com/SoapTools.html (though I'm not sure of its quality). I'm now downloading IBM Websphere 6 to see how that goes.
    Thanks again,
    -Tim West
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions
        name="TentativeHold"
        targetNamespace="http://www.w3.org/2001/08/thp/definitions"
        xmlns:tns="http://www.w3.org/2001/08/thp/definitions"
        xmlns:holdSchema="http://www.w3.org/2001/08/thp/schemas"
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
        xmlns="http://schemas.xmlsoap.org/wsdl/">
      <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema"
            xmlns:holdSchema="http://www.w3.org/2001/08/thp/schemas"
            targetNamespace="http://www.w3.org/2001/08/thp/schemas">
          <!-- =================================================================== -->
          <!-- Item - holdHeader -->
          <!-- Note - This information is required in all the Tentative Hold Protocol
                      communications. -->
          <!-- Fields- holdID - UUID. -->
          <!--             customerID - account number or other identifier -->
          <!--             replyTo - could be a unique locator such as a URI or an
                              email address depending on the communication protocol
                              to be used. -->
          <!-- comment - space for trading partner defined info. -->
          <!-- =================================================================== -->
          <complexType name="holdHeader">
            <sequence>
              <element name="holdID" type="int"/>
              <element name="customerID" type="string"/>
              <element name="replyTo" type="string"/>
              <element name="comment" type="string"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - userDefinedBody -->
          <!-- Note - This will carry any domain-specific information  (e.g., product
                ID and quantity). An implementation shall probably have many
                different userDefinedBody's (one for holdRequest, holdRequestAck,
                ...). This body is used in all messages. -->
          <!-- Fields - Trading partner to trading partner specific or an agreed
             - standard (e.g., RosettaNet PIP). -->
          <!-- =================================================================== -->
            <!-- TIM: Just junk here for now, must fix later -->
          <complexType name="userDefinedBody">
            <sequence>
              <element name="someRequestField" type="string"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdRequestHdr -->
          <!-- Note - Specifies the Tentative Hold Protocol header for messages
             - requesting a tentative hold. -->
          <!-- Fields - Same as holdHeader -->
          <!-- =================================================================== -->
          <complexType name="holdRequestHdr">
            <sequence>
              <element name="baseHeader" type="holdSchema:holdHeader"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdRequestAckHdr -->
          <!-- Note - -->
          <!-- Fields - holdHeader + timeUntilResponse - a indication of the time it
             - will take the resource provider to process the request. -->
          <!-- =================================================================== -->
          <complexType name="holdRequestAckHdr">
            <sequence>
              <element name="baseHeader" type="holdSchema:holdHeader"/>
              <element name="timeUntilResponse" type="duration"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdGrantHdr -->
          <!-- Note - -->
          <!-- Fields - holdHeader + holdDuration - the agreed to length of the hold
             - on the resource requested. -->
          <!-- =================================================================== -->
          <complexType name="holdGrantHdr">
            <sequence>
              <element name="baseHeader" type="holdSchema:holdHeader"/>
              <element name="holdDuration" type="duration"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdDenialHdr -->
          <!-- Note - -->
          <!-- Fields - holdHeader + reason - a description of the reason for the
             - denial. The implementation may choose to use reason codes or just
             - textual descriptions. -->
          <!-- =================================================================== -->
          <complexType name="holdDenialHdr">
            <sequence>
              <element name="baseHeader" type="holdSchema:holdHeader"/>
              <element name="reason" type="string"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdModifyRequestHdr -->
          <!-- Note - -->
          <!-- Fields - holdHeader -->
          <!-- =================================================================== -->
          <complexType name="holdModifyRequestHdr">
            <sequence>
              <element name="modifiedHoldRequest" type="holdSchema:holdHeader"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdModifyGrantHdr -->
          <!-- Note - -->
          <!-- Fields - holdHeader + holdDuration - the agreed to length of the hold
             - on the resource requested. -->
          <!-- =================================================================== -->
          <complexType name="holdModifyGrantHdr">
            <sequence>
              <element name="modifiedHoldRequest" type="holdSchema:holdGrantHdr"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdModifyDenialHdr -->
          <!-- Note - -->
          <!-- Fields - holdHeader + reason - a description of the reason for the denial.
             - The implementation may choose to use reason codes or just textual
             - descriptions.-->
          <!-- =================================================================== -->
          <complexType name="holdModifyDenialHdr">
            <sequence>
              <element name="modifiedHoldRequest" type="holdSchema:holdDenialHdr"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdModifyResponseChoiceHdr -->
          <!-- Note - The use of a single type for this response was to facilitate a
             - synchronous request/response for the modify request without preventing
             - asynchronous.-->
          <!-- Fields - Either holdModifyGrantHdr or holdModifyDenialHdr -->
          <!-- =================================================================== -->
          <!-- TIM: JWSDP does not support xsd:choice, so I'm turning this into a sequence.
             -      The implementor is now responsible for ensuring exactly one of these
                    is present.
            -->
          <complexType name="holdModifyResponseChoiceHdr">
            <sequence>
              <element name="grant" type="holdSchema:holdModifyGrantHdr"/>
              <element name="deny" type="holdSchema:holdModifyDenialHdr"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdCancellationRequestHdr -->
          <!-- Note - -->
          <!-- Fields - holdHeader + customerReason - a description of or a code for
             - the reason why the hold is being cancelled. -->
          <!-- =================================================================== -->
          <complexType name="holdCancellationRequestHdr">
            <sequence>
              <element name="customerHold" type="holdSchema:holdHeader"/>
              <element name="customerReason" type="string"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdCancellationResponseHdr -->
          <!-- Note - -->
          <!-- Fields - holdHeader -->
          <!-- =================================================================== -->
          <complexType name="holdCancellationResponseHdr">
            <sequence>
              <element name="customerHold" type="holdSchema:holdHeader"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdCancellationNotificationHdr -->
          <!-- Note - -->
          <!-- Fields - holdHeader + cancellationReason - a description of or a code
             -for the reason the vendor is cancelling the hold. -->
          <!-- =================================================================== -->
          <complexType name="holdCancellationNotificationHdr">
            <sequence>
              <element name="customerHold" type="holdSchema:holdHeader"/>
              <element name="cancellationReason" type="string"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdStatusQueryHdr -->
          <!-- Note - -->
          <!-- Fields - holdHeader -->
          <!-- =================================================================== -->
          <complexType name="holdStatusQueryHdr">
            <sequence>
              <element name="customerHold" type="holdSchema:holdHeader"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdStatusResponseHdr -->
          <!-- Note - -->
          <!-- Fields - holdHeader -->
          <!-- =================================================================== -->
          <complexType name="holdStatusResponseHdr">
            <sequence>
              <element name="baseHeader" type="holdSchema:holdHeader"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - statusStructure -->
          <!-- Note - -->
          <!-- Fields - holdHeader + holdState - a description of the state of the hold.
             - Possible values currently defined are: responding, in process, active,
             - and inactive. The definition is left open (not restricted) for future or
             - user refinement of the useful values. -->
          <!-- =================================================================== -->
          <complexType name="statusStructure">
            <sequence>
              <element name="itemHeader" type="holdSchema:holdHeader"/>
              <element name="holdState" type="string"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdStatusResponseBody -->
          <!-- Note - -->
          <!-- Fields - holdItemsCount - the number of holds matching the holdStatusQuery. -->
          <!--             itemList - The header and state of the holds that match the query. -->
          <!-- =================================================================== -->
          <complexType name="holdStatusResponseBody">
            <sequence>
              <element name="holdItemsCount" type="int"/>
              <element name="itemList" type="holdSchema:statusStructure" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
          </complexType>
          <!-- =================================================================== -->
          <!-- Item - holdErrorHdr -->
          <!-- Note - -->
          <!-- Fields - holdHeader -->
          <!-- =================================================================== -->
          <!-- TIM: Combined old "holdErrorHdr" and "holdErrorBody" as a fault must
             - have only a single part (see WSDL sec 3.6).
            -->
          <complexType name="holdError">
            <sequence>
              <element name="baseHeader" type="holdSchema:holdHeader"/>
              <element name="holdErrorType" type="int"/>
              <element name="holdErrorDesc" type="string"/>
            </sequence>
          </complexType>
          <!-- TIM: To use doc/lit, we need <element> tags here to reference from WSDL -->
          <element name="userDefinedBody" type="holdSchema:userDefinedBody"/>
          <element name="holdRequestHdr" type="holdSchema:holdRequestHdr"/>
          <element name="holdRequestAckHdr" type="holdSchema:holdRequestAckHdr"/>
          <element name="holdGrantHdr" type="holdSchema:holdGrantHdr"/>
          <element name="holdDenialHdr" type="holdSchema:holdDenialHdr"/>
          <element name="holdModifyRequestHdr" type="holdSchema:holdModifyRequestHdr"/>
          <element name="holdModifyGrantHdr" type="holdSchema:holdModifyGrantHdr"/>
          <element name="holdModifyDenialHdr" type="holdSchema:holdModifyDenialHdr"/>
          <element name="holdModifyResponseChoiceHdr" type="holdSchema:holdModifyResponseChoiceHdr"/>
          <element name="holdCancellationRequestHdr" type="holdSchema:holdCancellationRequestHdr"/>
          <element name="holdCancellationResponseHdr" type="holdSchema:holdCancellationResponseHdr"/>
          <element name="holdCancellationNotificationHdr" type="holdSchema:holdCancellationNotificationHdr"/>
          <element name="holdStatusQueryHdr" type="holdSchema:holdStatusQueryHdr"/>
          <element name="holdStatusResponseHdr" type="holdSchema:holdStatusResponseHdr"/>
          <element name="holdStatusResponseBody" type="holdSchema:holdStatusResponseBody"/>
          <element name="holdError" type="holdSchema:holdError"/>
        </schema>
      </types>
      <message name="HoldRequest">
        <part name="headerHoldRequest" element="holdSchema:holdRequestHdr"/>
        <part name="bodyHoldRequest" element="holdSchema:userDefinedBody"/>
      </message>
      <message name="HoldRequestAck">
        <part name="headerHoldRequestAck" element="holdSchema:holdRequestAckHdr"/>
        <part name="bodyHoldRequestAck" element="holdSchema:userDefinedBody"/>
      </message>
      <message name="HoldGrantResponse">
        <part name="headerHoldGrantResponse" element="holdSchema:holdGrantHdr"/>
        <part name="bodyHoldGrantResponse" element="holdSchema:userDefinedBody"/>
      </message>
      <message name="HoldDenialResponse">
        <part name="headerHoldDenialResponse" element="holdSchema:holdDenialHdr"/>
        <part name="bodyHoldDenialResponse" element="holdSchema:userDefinedBody"/>
      </message>
      <message name="HoldModifyRequest">
        <part name="headerHoldModifyRequest" element="holdSchema:holdModifyRequestHdr"/>
        <part name="bodyHoldModifyRequest" element="holdSchema:userDefinedBody"/>
      </message>
      <message name="HoldModifyResponse">
        <part name="headerHoldModifyResponse" element="holdSchema:holdModifyResponseChoiceHdr"/>
        <part name="bodyHoldModifyResponse" element="holdSchema:userDefinedBody"/>
      </message>
      <message name="HoldCancellationRequest">
        <part name="headerHoldCancellationRequest" element="holdSchema:holdCancellationRequestHdr"/>
        <part name="bodyHoldCancellationRequest" element="holdSchema:userDefinedBody"/>
      </message>
      <message name="HoldCancellationResponse">
        <part name="headerHoldCancellationResponse" element="holdSchema:holdCancellationResponseHdr"/>
        <part name="bodyHoldCancellationResponse" element="holdSchema:userDefinedBody"/>
      </message>
      <message name="HoldCancellationNotification">
        <part name="header" element="holdSchema:holdCancellationNotificationHdr"/>
        <part name="body" element="holdSchema:userDefinedBody"/>
      </message>
      <message name="HoldStatusQueryRequest">
        <part name="headerHoldStatusQueryRequest" element="holdSchema:holdStatusQueryHdr"/>
        <part name="bodyHoldStatusQueryRequest" element="holdSchema:userDefinedBody"/>
      </message>
      <message name="HoldStatusResponse">
        <part name="headerHoldStatusResponse" element="holdSchema:holdStatusResponseHdr"/>
        <part name="bodyHoldStatusResponse" element="holdSchema:holdStatusResponseBody"/>
      </message>
      <message name="HoldErrorResponse">
        <!-- TIM: altered to be consistent with updated schema - the
           - fault body must have only one part
          -->
        <part name="bodyHoldErrorResponse" element="holdSchema:holdError"/>
      </message>
      <portType name="TentativeHoldServicePortType">
        <operation name="InitiateHold">
          <input message="tns:HoldRequest"/>
          <output message="tns:HoldRequestAck"/>
          <!--
          <fault name="HoldErrorResponse" message="tns:HoldErrorResponse"/>
          -->
        </operation>
        <operation name="InitiateHoldModify">
          <input message="tns:HoldModifyRequest"/>
          <output message="tns:HoldModifyResponse"/>
          <!--
          <fault name="HoldErrorResponse" message="tns:HoldErrorResponse"/>
          -->
        </operation>
        <operation name="InitiateHoldCancellation">
          <input message="tns:HoldCancellationRequest"/>
          <output message="tns:HoldCancellationResponse"/>
          <!--
          <fault name="HoldErrorResponse" message="tns:HoldErrorResponse"/>
          -->
        </operation>
        <operation name="InitiateStatusQuery">
          <input message="tns:HoldStatusQueryRequest"/>
          <output message="tns:HoldStatusResponse"/>
          <!--
          <fault name="HoldErrorResponse" message="tns:HoldErrorResponse"/>
          -->
        </operation>
      </portType>
      <portType name="TentativeHoldNotificationServicePortType">
        <operation name="NotifyHoldGranted">
          <output message="tns:HoldGrantResponse"/>
        </operation>
        <operation name="NotifyHoldDenied">
          <output message="tns:HoldDenialResponse"/>
        </operation>
        <operation name="NotifyServerHoldCancellation">
          <output message="tns:HoldCancellationNotification"/>
        </operation>
      </portType>
      <binding name="TentativeHoldSoapBinding" type="tns:TentativeHoldServicePortType">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
          <operation name="InitiateHold">
            <soap:operation soapAction="http://www.w3.org/2001/08/thp/InitiateHold"/>
            <input>
              <soap:body use="literal"/>
            </input>
            <output>
              <soap:body use="literal"/>
            </output>
            <!--
            <fault name="HoldErrorResponse">
              <soap:fault name="HoldErrorResponse" use="literal"/>
            </fault>
            -->
          </operation>
          <operation name="InitiateHoldModify">
            <soap:operation soapAction="http://www.w3.org/2001/08/thp/InitiateHoldModify"/>
            <input>
              <soap:body use="literal"/>
            </input>
            <output>
              <soap:body use="literal"/>
            </output>
            <!--
            <fault name="HoldErrorResponse">
              <soap:fault name="HoldErrorResponse" use="literal"/>
            </fault>
            -->
          </operation>
          <operation name="InitiateHoldCancellation">
            <soap:operation soapAction="http://www.w3.org/2001/08/thp/InitiateHoldCancellation"/>
            <input>
              <soap:body use="literal"/>
            </input>
            <output>
              <soap:body use="literal"/>
            </output>
            <!--
            <fault name="HoldErrorResponse">
              <soap:fault name="HoldErrorResponse" use="literal"/>
            </fault>
            -->
          </operation>
          <operation name="InitiateStatusQuery">
            <soap:operation soapAction="http://www.w3.org/2001/08/thp/InitiateStatusQuery"/>
            <input>
              <soap:body use="literal"/>
            </input>
            <output>
              <soap:body use="literal"/>
            </output>
            <!--
            <fault name="HoldErrorResponse">
              <soap:fault name="HoldErrorResponse" use="literal"/>
            </fault>
            -->
          </operation>
      </binding>
      <service name="TentativeHoldService">
        <documentation> Mythical Tentative Hold Web service</documentation>
        <port name="TentativeHoldPort" binding="tns:TentativeHoldSoapBinding">
          <soap:address location="http://xyz.com/tentativeHold/"/>
        </port>
      </service>
      <service name="TentativeHoldNotificationService">
        <port name="NotificationPort" binding="tns:TentativeHoldSoapBinding">
          <soap:address location="http://xyz.com/tentativeHoldNotification"/>
        </port>
      </service>
    </definitions>

Maybe you are looking for