6534 DAQ card- i want to process continous stream of data....through DAQ card...

I have NI -6534 DAQ card.i have continous stream of 16-bit parallel data. I use two port as input port .(16 bits parallel data), such that i recieve  12000 bytes per second in my card buffer.  i  use  DIO read.vi. then on this bunch of 12000 bytes, i do some processing and display a XY chart/waveform. 
code structure is as follows:
1) DIO config. vi
2) DIO start. vi
3) while loop
    {          DIO read.vi (reads 12000/or fixed number of bytes, inserts into an array )
               Insert array.vi
               while loop(this processes data till end of 12000 bytes,then stops)
                                  stacked sequence(this processes the 12000 bytes data, )
                                    (      seq 0: intialize counters,
                                            seq 1: extract some pre-defined bytes,convert and display on frontpanel
                                            seq 2: extract specified bunch of bytes, create  xy chart/waveform
                             }(12000 bytes data ends)
     }(16-bit parallel data is unavaible/or user control stop)
4)dio clear.vi
the problem persceptable here is , that processing data takes time.. few seconds for processing bucnh of data..then goes back to DIO read to fetch new bunch of data. till then the front panel waveforms and digital displays are on hold/static.
I want to process data simulatanouesly , and also being recieve in buffer through DAQ.real time processing.
simulatanoeus aqcuuistion..and process on continous data rather than in bunch of data.(i.e. TWO vi. should run in paralell  DIO READ.vi acqusition...and process.. on that data(vi) )
Can queue.vi slove this problem? any other method
your help is greatly appreciated..Thanks.

Hi,
This is definitely something that can be solved using a producer consumer loop.  You would have two loops running in parallel, have all of your data acquisition/generation done in the producer loop.  Use queues to transfer all that data from the producer loop to the consumer loop and then do any kind of processing in your consumer loop.
The producer and consumer loop will run in parallel, and the consumer loop cannot run faster that the producer loop.
The good thing is that you can get a producer consumer template easily.  In the LabVIEW startup window, select New (not New VI) >> From Template >> Frameworks >>Desgin Patterns >> Producer/Consumer Design Pattern (Data).
Hope that helps.
Regards,
Raajit L
National Instruments

Similar Messages

  • I want to change the Legacy assest data through as92

    Hello  Sap Gurus
    I want to change the legacy Assest data for my client. While Changeing its give  error that Transfer the data or close the Year. year 2005 is closed. In Assest data Transfer , In date Parameters given data is 31-03-2007. For 2006 Dep is not at run.
    Can any one help me  in this Regards.
    Thanks
    Raj

    Hi Raj,
    Use transaction code <b>AJRW</b> to run the Fiscal Year change for 2005 and <b>AJAB</b> to run Year End Close. Do the same for 2006.
    Then, go back to <b>AS92</b>, indicate the Asset number, subnumber and the company code. Click on Take over values. Correct the APC and the Accummulated Depreciation value to what it should be and hit the enter button. This would determine your NBV for you. Save your entries.
    I hope the above helps.
    Do not forget to award the points please.
    Regards,
    Jacob

  • Can I test the control lines of a 6534 DAQ device in a C++ environment?

    The signals going into the control lines (REQ and PCLK) of my 6534 DAQ card are becoming quite distorted (longer rise time, decreased amplitude and ringing around 2.5-3 V). I have tried buffering them from my peripheral device without success. I am using a short 1M cable. I would like to test the integrity of these control lines. Searching your site, I could only find a testing utility for Labview. My application is written with Borland C++ using the example code for single buffer burst mode with an external PCLK provided with the card. I am attempting to operate in the burst mode with a 20 MS/s transfer rate.

    Hello,
    I am not sure exactly what you would like to test here. Is it that you would like to know if you external signals are valid? This is my assumption.
    1.) Could you provide a link or tell us where the testing utility for LabVIEW is?
    2.) Could you explain in more detail what is happening that makes you want to do these tests?
    Best regards,
    Justin T.
    National Instruments

  • HT1918 I need to know how to delete my credit card from account because I know longer have a credit.  I just want to be able to up date my Apps but I can't now because there is a credit card on my account what do I need to delete it.

    I need to know how to delete my credit card from account because I know longer have a credit.  I just want to be able to up date my Apps but I can't now because there is a credit card on my account what do I need to delete it.

    I need to know how to delete my credit card from account because I know longer have a credit.  I just want to be able to up date my Apps but I can't now because there is a credit card on my account what do I need to delete it. Also my credit has expired so i need to delete it.

  • How to upload using  upload button and want to process it....

    Hi,
    I need a program to upload a file [Excel file] using upload button and
    want to process the excel sheet and store the data in database.
    I know that we can upload using Html - file type.
    but I dont know how to retrieve that uploaded file to process it?
    I mean , Is there any function like requset.getParameter() to get the uploaded file?

    Go to the [Apache Commons FileUpload homepage|http://commons.apache.org/fileupload] and carefully read the 'User Guide' and 'Frequently Asked Questions' sections from top to bottom (do not only focus on the code examples, but also on the article's text!!).

  • Starting New process (continous) from another java process

    Hi,
    I am running into a trouble in starting a new java process (continous process it is like daemon process ) from another java process.
    Eg;
    Caller.java runs on one JVM instance, from this Caller.java i need to start a daemon java process ConnectionManager.java (My caller.java should have to know whether ConnectionManager was successfully started as a seperate java process or not)
    Also Caller.java has to stop ConnectionManager.java(which is running as seperate process)
    Any help would be appeciated.
    Thank you very much.

    First of all the design is unusual. Your issue is basically intercommunication between two processes written in java. There are various ways to do that:
    1. Use Persistent system(File/Database) : Easiest but have external dependency.
    2. Use RPC calls both JVM,s little bit complex.
    3. Run new JVM in debug mode and connect on bootstrap port.
    4. Communicate using Sockets.
    Whatever suits you...

  • I want bapi process for bap_goodsmvt_create  function module

    hai this is siva
    i want bapi process for bap_goodsmvt_create  function module,

    Hi ALL,
    I am new to ABAP.
    I have created function module ZMM5 , no syntax error is there.
    but while activating i am getting error,
    PROGRAM SAPLZSKG REPORT / PROGRAM STATEMENT MISSING, OR PROGRAM TYPE IS I ( INCLUDE).
    I WANT TO CHECK THE SYNTAX FOR UNICODE.
    i am not able to check the syntax as i tried by giving FM name, FG name and include name.
    can you please help me.
    Thanks in advance.
    best regards,
    zubera

  • Can I input a square wave using 6534 DIO card?

    Can I input a square wave using 6534 DIO card?
    I'm trying to read in a square wave using the
    6534 DIO card. It seems like a easy enough task.
    But I not having any luck yet. Any helpful hint
    from experienced user? I'm using an HP square wave
    generator.
    Thank you,
    Van

    what you need is the example for digital input.
    at high enough speed and enough samples to see the voltage swing.
    the output of the waveformgen should be between 0 and 0.4 volt to see a zero and above 1.8 volt to see a 1.
    normally on a scope you see plus and minus but here you have ttl like inputs.
    greetings from the Netherlands

  • Continous streaming of video signal on to PDA using TCP/IP?

    Hardware :IMAQ PCI 1411
    Software :labview PDA module, labview 7.0,7.1.8.0, Labview pocket pc 2002
    can i have continous video image on my PDA , image Acquired by the host PC  using 802.11g wrelessTCP/IP protocol.( that is continous video streaming on to my PDA device.) I am developing an application to transfer video signals to my pda.I would define my application
    I am developing robot having camera on it. my idea is to tranmit video image acquired by camera on host ( i.e robot ) to my PDA using wifi TCP/IP Protocol. i am able to control robot motion from pda using Daq pci-6229 on host.
    Thanks in advance.
    murari.

    I think the only way this would be possible in LV was if you convert the images to the LV picture format, flatten that to a string, send the string over and unflatten it and write it to a picture indicator.
    There are several potential problems:
    1. 7.0 was the first version of the PDA module. I don't remember how much support it has for the picture control, although I believe it should have enough. The newest version is 8.0, which was just released.
    2. Depending on the size of the picture, this can be a lot of data. Since you have a g connection, that should be less of a problem, but it still may be an issue, depending on your frame rate. I once wrote a VI which recognized which parts of an image were changed and used a special (very primitive) protocol to send the data to the PDA (I was thinking of a cellular connection and wanted to minimize the amount of data), but I did that for the LV interface, which was mostly static, and I only detected that when it changed.
    3. PDAs have significantly less processor power than a PC. Depending on your frame rate, this may be hard for the PDA.
    4. The PDA module only supports 8 bit color, and that will require you to do additional computation to make the picture look normal. 8 introduced 16 bit support.
    The upside is that writing the code for converting, sending, receiving and displaying the data is very very simple (assuming you can get it into the picture control format, not IMAQ, which isn't supported as far as I know). Just have a loop run on the computer side which will "acquire" the frame, flatten and send it, and another on the PDA side which will receive, unflatten and display. I think on the PDA side you will have to update the picture pixel by pixel.
    Try to take over the world!

  • I want to open a txt file and output data through an AO-using DAQmx for PXI

    I have a PXI running a 8145RT CPU. I have a PX6040E Multifunction DAQ card installed in the PXI. I want to program an application where I open a txt file (existing in one of the the RT machines' folders), read the first row, and output its data through an AO channel. The drivers I should use is DAQmx v7.1, and the Labview RT v.7
    Any idea?

    What exactly are you having problems with? Reading a text file can be done a number of ways. Look at the File I/O palette and check out Read Lines From File or Read Characters From File. There are string to number conversion functions on the string palette (i.e. Scan From String). There are also numberous shipping examples on using DAQmx for analog out. If you have a specific problem or question, please post back with additional details.

  • Post processing the received serial data

    Hello,
    I want to process the data received by comport in labview where the transmitter device sends 22 bytes of data in this format 0x01 0x02 <18 bytes of information data with LSB first> 0x03 0x0D through the comport which should be read using Labview. I want to process the received 22 bytes in labview as below
    1)      Leave the first 2 bytes and last two bytes
    2)      From the left 18bytes each consecutive set of 3 bytes should be reversed (because the transmitter sends the LSB first) and stored in a text file.
    Can anyone suggest me the steps to implement this.
    Thanks.
    Solved!
    Go to Solution.

    PatanGova wrote:
    When first 2bytes are skipped and remaining 18 bytes are divided such that consecuitve 3 bytes are rearranged then it is considering 030D0102(which is rearranged as in spreadsheet2 of the attached image) which should not be.
    It is ignoring the first two bytes.  That's what the String Subset is doing.  You are taking starting on the thrid byte and up to 18 bytes.  If you put your Recieved Data on the output of the VISA Read, you would see that.
    PatanGova wrote:
    But I want to 1)skip the first two bytes(0x01 0x02) and last two bytes(0x03 0x0D).
    2)From the left 18bytes each consecutive set of 3 bytes should be reversed (because the transmitter sends the LSB first)
    Your code is already doing that.
    PatanGova wrote:
    3) arranged 3bytes value should be converted into 2's complement and want to plot the data (2's complement of arranged 3bytes) continuously such that there will 6 continous plots.(each consisting 2's complement of the rearranged 3bytes)
    Now that is a little more difficult.  A three byte Two's Compliment will take a little work.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Processing large volumes of data in PL/SQL

    I'm working on a project which requires us to process large volumes of data on a weekly/monthly/quarterly basis, and I'm not sure we are doing it right, so any tips would be greatly appreciated.
    Requirement
    Source data is in a flat file in "short-fat" format i.e. each data record (a "case") has a key and up to 2000 variable values.
    A typical weekly file would have maybe 10,000 such cases i.e. around 20 million variable values.
    But we don't know which variables are used each week until we get the file, or where they are in the file records (this is determined via a set of meta-data definitions that the user selects at runtime). This makes identifying and validating each variable value a little more interesting.
    Target is a "long-thin" table i.e. one record for each variable value (with numeric IDs as FKs to identify the parent variable and case.
    We only want to load variable values for cases which are entirely valid. This may be a merge i.e. variable values may already exist in the target table.
    There are various rules for validating the data against pre-existing data etc. These rules are specific to each variable, and have to be applied before we put the data in the target table. The users want to see the validation results - and may choose to bail out - before the data is written to the target table.
    Restrictions
    We have very limited permission to perform DDL e.g. to create new tables/indexes etc.
    We have no permission to use e.g. Oracle external tables, Oracle directories etc.
    We are working with standard Oracle tools i.e. PL/SQL and no DWH tools.
    DBAs are extremely resistant to giving us more disk space.
    We are on Oracle 9iR2, with no immediate prospect of moving to 10g.
    Current approach
    Source data is uploaded via SQL*Loader into static "short fat" tables.
    Some initial key validation is performed on these records.
    Dynamic SQL (plus BULK COLLECT etc) is used to pivot the short-fat data into an intermediate long-thin table, performing the validation on the fly via a combination of including reference values in the dynamic SQL and calling PL/SQL functions inside the dynamic SQL. This means we can pivot+validate the data in one step, and don't have to update the data with its validation status after we've pivoted it.
    This upload+pivot+validate step takes about 1 hour 15 minutes for around 15 million variable values.
    The subsequent "load to target table" step also has to apply substitution rules for certain "special values" or NULLs.
    We do this by BULK collecting the variable values from the intermediate long-thin table, for each valid case in turn, applying the substitution rules within the SQL, and inserting into/updating the target table as appropriate.
    Initially we did this via a SQL MERGE, but this was actually slower than doing an explicit check for existence and switching between INSERT and UPDATE accordingly (yes, that sounds fishy to me too).
    This "load" process takes around 90 minutes for the same 15 million variable values.
    Questions
    Why is it so slow? Our DBAs assure us we have lots of table-space etc, and that the server is plenty powerful enough.
    Any suggestions as to a better approach, given the restrictions we are working under?
    We've looked at Tom Kyte's stuff about creating temporary tables via CTAS, but we have had serious problems with dynamic SQL on this project, so we are very reluctant to introduce more of it unless it's absolutely necessary. In any case, we have serious problems getting permissions to create DB objects - tables, indexes etc - dynamically.
    So any advice would be gratefully received!
    Thanks,
    Chris

    We have 8 "short-fat" tables to hold the source data uploaded from the source file via SQL*Loader (the SQL*Loader step is fast). The data consists simply of strings of characters, which we treat simply as VARCHAR2 for the most part.
    These tables consist essentially of a case key (composite key initially) plus up to 250 data columns. 8*250 = 2000, so we can handle up to 2000 of these variable values. The source data may have 100 any number of variable values in each record, but each record in a given file has the same structure. Each file-load event may have a different set of variables in different locations, so we have to map the short-fat columns COL001 etc to the corresponding variable definition (for validation etc) at runtime.
    CASE_ID VARCHAR2(13)
    COL001 VARCHAR2(10)
    COL250     VARCHAR2(10)
    We do a bit of initial validation in the short-fat tables, setting a surrogate key for each case etc (this is fast), then we pivot+validate this short-fat data column-by-column into a "long-thin" intermediate table, as this is the target format and we need to store the validation results anyway.
    The intermediate table looks similar to this:
    CASE_NUM_ID NUMBER(10) -- surrogate key to identify the parent case more easily
    VARIABLE_ID NUMBER(10) -- PK of variable definition used for validation and in target table
    VARIABLE_VALUE VARCHAR2(10) -- from COL001 etc
    STATUS VARCHAR2(10) -- set during the pivot+validate process above
    The target table looks very similar, but holds cumulative data for many weeks etc:
    CASE_NUM_ID NUMBER(10) -- surrogate key to identify the parent case more easily
    VARIABLE_ID NUMBER(10) -- PK of variable definition used for validation and in target table
    VARIABLE_VALUE VARCHAR2(10)
    We only ever load valid data into the target table.
    Chris

  • Process Chain which loads data to a cube

    Hi All
    Please help me create a process chain in BI 7.0. I have to load the data in to a cube and before that i need to delete the existing request in the Cube. I think i should use " Delete overlapping requests from Infocube".  In the maintain variant for this process type what object types i need to add. Do i need to add both Execute infopackage and Data transfer process objects.
    Regards
    Naga

    Hi Ravi
    I am loading the data from PSA to Cube using DTP. Actually my data source is export datasource (8ZHYP- prefix 8). So accroding to your answer i should use DTP object type in the process type delete overlapping request. But when i create a variant for that process type it is getting Indexs > Create Index > Data Transfer Process > Request to delete data in the infocube.
    I just want to delete the data in the infocube before i load the data. So can i delete all the remaining processes.
    Regards
    Naga

  • Unable to update payment cards data through ORDERS05 in va02

    Hi all,
    I noticed one thing that in IDOC_INPUT_ORDERS (ie creation of sales order)  we have a bdcdata populated for payment cards (for header in VA01) .But when we are changing sales order by IDOC_INPUT_ORDCHG (change sales order VA02) we have no bdcdata populated for updating payment cards ( like CCNUM ) though we are passing these details through IDOC.
    Can anyone tell me why bdcdata through idoc posting is getting populated in VA01 but not through VA02 . We can change payment card dara manually in VA02  why cant we achieve the same through idoc.
    Please help me as updating payment card data through idoc in VA02 is my requirement .
    Do i need to populate it by writing code in an exit in IDOC_INPUT_ORDCHG.
    Any help is appreciated.
    Thanks and Regards
    Sweta

    Hi,
    Can you please let me know the segment in ORDERS05 Idoc to process the Payment card information and if the standard Function Module can handle the creation of a Sales Order with data for Payment Card.
    We have a requirement to map the Tokenized Number of the Credit Card send from a store front end to ECC mapping via SAP-PI.
    Thanks in Advance,

  • What are the major process to transfer the data from legacy to sap system.

    What are the major process to transfer the data from legacy to sap system using BDC at Real Time only?

    hi,
    BATCH DATA COMMUNICATION
    main methods are:
    1. SESSION METHOD
    2. CALL TRANSACTION
    3. DIRECT INPUT
    Advantages offered by BATCH INPUT method:
    1. Can process large data volumes in batch.
    2. Can be planned and submitted in the background.
    3. No manual interaction is required when data is transferred.
    4. Data integrity is maintained as whatever data is transferred to the table is through transaction. Hence batch input data is submitted to all the checks and validations.
    To implement one of the supported data transfers, you must often write the program that exports the data from your non-SAP system. This program, known as a “data transfer” program must map the data from the external system into the data structure required by the SAP batch input program.
    The batch input program must build all of the input to execute the SAP transaction.
    Two main steps are required:
    • To build an internal table containing every screen and every field to be filled in during the execution of an SAP transaction.
    • To pass the table to SAP for processing.
    Prerequisite for Data Transfer Program
    Writing a Data Transfer Program involves following prerequisites:
    Analyzing data from local file
    Analyzing transaction
    Analyzing transaction involves following steps:
    • The transaction code, if you do not already know it.
    • Which fields require input i.e., mandatory.
    • Which fields can you allow to default to standard values.
    • The names, types, and lengths of the fields that are used by a transaction.
    • Screen number and Name of module pool program behind a particular transaction.
    To analyze a transaction::
    • Start the transaction by menu or by entering the transaction code in the command box.
    (You can determine the transaction name by choosing System – Status.)
    • Step through the transaction, entering the data will be required for processing your batch input data.
    • On each screen, note the program name and screen (dynpro) number.
    (dynpro = dyn + pro. Dyn = screen, pro = number)
    • Display these by choosing System – Status. The relevant fields are Program (dynpro) and Dynpro number. If pop-up windows occur during execution, you can get the program name and screen number by pressing F1 on any field or button on the screen.
    The technical info pop-up shows not only the field information but also the program and screen.
    • For each field, check box, and radio button on each screen, press F1 (help) and then choose Technical Info.
    Note the following information:
    - The field name for batch input, which you’ll find in its own box.
    - The length and data type of the field. You can display this information by double clicking on the Data Element field.
    • Find out the identification code for each function (button or menu) that you must execute to process the batch-input data (or to go to new screen).
    Place the cursor on the button or menu entry while holding down the left mouse button. Then press F1.
    In the pop-up window that follows, choose Technical info and note the code that is shown in the Function field.
    You can also run any function that is assigned to a function key by way of the function key number. To display the list of available function keys, click on the right mouse button. Note the key number that is assigned to the functions you want to run.
    Once you have program name, screen number, field name (screen field name), you can start writing.
    DATA TRANSFER program.
    Declaring internal table
    First Integral Table similar to structure like local file.
    Declaring internal table like BDCDATA
    The data from internal table is not transferred directly to database table, it has to go through transaction. You need to pass data to particular screen and to particular screen-field. Data is passed to transaction in particular format, hence there is a need for batch input structure.
    The batch input structure stores the data that is to be entered into SAP system and the actions that are necessary to process the data. The batch input structure is used by all of the batch input methods. You can use the same structure for all types of batch input, regardless of whether you are creating a session in the batch input queue or using CALL TRANSACTION.
    This structure is BDCDATA, which can contain the batch input data for only a single run of a transaction. The typical processing loop in a program is as follows:
    • Create a BDCDATA structure
    • Write the structure out to a session or process it with CALL TRANSACTION USING; and then
    • Create a BDCDATA structure for the next transaction that is to be processed.
    Within a BDCDATA structure, organize the data of screens in a transaction. Each screen that is processed in the course of a transaction must be identified with a BDCDATA record. This record uses the Program, Dynpro, and Dynbegin fields of the structure.
    The screen identifier record is followed by a separate BDCDATA record for each value, to be entered into a field. These records use the FNAM and FVAL fields of the BDCDATA structure. Values to be entered in a field can be any of the following:
    • Data that is entered into screen fields.
    • Function codes that are entered into the command field. Such function codes execute functions in a transaction, such as Save or Enter.
    The BDCDATA structure contains the following fields:
    • PROGRAM: Name of module pool program associated with the screen. Set this field only for the first record for the screen.
    • DYNPRO: Screen Number. Set this field only in the first record for the screen.
    • DYNBEGIN: Indicates the first record for the screen. Set this field to X, only for the first record for the screen. (Reset to ‘ ‘ (blank) for all other records.)
    • FNAM: Field Name. The FNAM field is not case-sensitive.
    • FVAL: Value for the field named in FNAM. The FVAL field is case-sensitive. Values assigned to this field are always padded on the right, if they are less than 132 characters. Values must be in character format.
    Transferring data from local file to internal table
    Data is uploaded to internal table by UPLOAD of WS_UPLOAD function.
    Population of BDCDATA
    For each record of internal table, you need to populate Internal table, which is similar to BDCDATA structure.
    All these five initial steps are necessary for any type of BDC interface.
    DATA TRANSFER program can call SESSION METHOD or CALL TRANSACTION. The initial steps for both the methods are same.
    First step for both the methods is to upload the data to internal table. From Internal Table, the data is transferred to database table by two ways i.e., Session method and Call transaction.
    SESSION METHOD
    About Session method
    In this method you transfer data from internal table to database table through sessions.
    In this method, an ABAP/4 program reads the external data that is to be entered in the SAP System and stores the data in session. A session stores the actions that are required to enter your data using normal SAP transaction i.e., Data is transferred to session which in turn transfers data to database table.
    Session is intermediate step between internal table and database table. Data along with its action is stored in session i.e., data for screen fields, to which screen it is passed, the program name behind it, and how the next screen is processed.
    When the program has finished generating the session, you can run the session to execute the SAP transactions in it. You can either explicitly start and monitor a session or have the session run in the background processing system.
    Unless session is processed, the data is not transferred to database table.
    BDC_OPEN_GROUP
    You create the session through program by BDC_OPEN_GROUP function.
    Parameters to this function are:
    • User Name: User name
    • Group: Name of the session
    • Lock Date: The date on which you want to process the session.
    • Keep: This parameter is passed as ‘X’ when you want to retain session after
    processing it or ‘ ‘ to delete it after processing.
    BDC_INSERT
    This function creates the session & data is transferred to Session.
    Parameters to this function are:
    • Tcode: Transaction Name
    • Dynprotab: BDC Data
    BDC_CLOSE_GROUP
    This function closes the BDC Group. No Parameters.
    Some additional information for session processing
    When the session is generated using the KEEP option within the BDC_OPEN_GROUP, the system always keeps the sessions in the queue, whether it has been processed successfully or not.
    However, if the session is processed, you have to delete it manually. When session processing is completed successfully while KEEP option was not set, it will be removed automatically from the session queue. Log is not removed for that session.
    If the batch-input session is terminated with errors, then it appears in the list of INCORRECT session and it can be processed again. To correct incorrect session, you can analyze the session. The Analysis function allows to determine which screen and value has produced the error. If you find small errors in data, you can correct them interactively, otherwise you need to modify batch input program, which has generated the session or many times even the data file.
    CALL TRANSACTION
    About CALL TRANSACTION
    A technique similar to SESSION method, while batch input is a two-step procedure, Call Transaction does both steps online, one after the other. In this method, you call a transaction from your program by
    Call transaction <tcode> using <BDCTAB>
    Mode <A/N/E>
    Update <S/A>
    Messages into <MSGTAB>.
    Parameter – 1 is transaction code.
    Parameter – 2 is name of BDCTAB table.
    Parameter – 3 here you are specifying mode in which you execute transaction
    A is all screen mode. All the screen of transaction are displayed.
    N is no screen mode. No screen is displayed when you execute the transaction.
    E is error screen. Only those screens are displayed wherein you have error record.
    Parameter – 4 here you are specifying update type by which database table is updated.
    S is for Synchronous update in which if you change data of one table then all the related Tables gets updated. And sy-subrc is returned i.e., sy-subrc is returned for once and all.
    A is for Asynchronous update. When you change data of one table, the sy-subrc is returned. And then updating of other affected tables takes place. So if system fails to update other tables, still sy-subrc returned is 0 (i.e., when first table gets updated).
    Parameter – 5 when you update database table, operation is either successful or unsuccessful or operation is successful with some warning. These messages are stored in internal table, which you specify along with MESSAGE statement. This internal table should be declared like BDCMSGCOLL, a structure available in ABAP/4. It contains the following fields:
    1. Tcode: Transaction code
    2. Dyname: Batch point module name
    3. Dynumb: Batch input Dyn number
    4. Msgtyp: Batch input message type (A/E/W/I/S)
    5. Msgspra: Batch input Lang, id of message
    6. Msgid: Message id
    7. MsgvN: Message variables (N = 1 - 4)
    For each entry, which is updated in database, table message is available in BDCMSGCOLL. As BDCMSGCOLL is structure, you need to declare a internal table which can contain multiple records (unlike structure).
    Steps for CALL TRANSACTION method
    1. Internal table for the data (structure similar to your local file)
    2. BDCTAB like BDCDATA
    3. UPLOAD or WS_UPLOAD function to upload the data from local file to itab. (Considering file is local file)
    4. Loop at itab.
    Populate BDCTAB table.
    Call transaction <tcode> using <BDCTAB>
    Mode <A/N/E>
    Update <S/A>.
    Refresh BDCTAB.
    Endloop.
    (To populate BDCTAB, You need to transfer each and every field)
    The major differences between Session method and Call transaction are as follows:
    SESSION METHOD CALL TRANSACTION
    1. Data is not updated in database table unless Session is processed. Immediate updation in database table.
    2. No sy-subrc is returned. Sy-subrc is returned.
    3. Error log is created for error records. Errors need to be handled explicitly
    4. Updation in database table is always synchronous Updation in database table can be synchronous Or Asynchronous.
    Error Handling in CALL TRANSACTION
    When Session Method updates the records in database table, error records are stored in the log file. In Call transaction there is no such log file available and error record is lost unless handled. Usually you need to give report of all the error records i.e., records which are not inserted or updated in the database table. This can be done by the following method:
    Steps for the error handling in CALL TRANSACTION
    1. Internal table for the data (structure similar to your local file)
    2. BDCTAB like BDCDATA
    3. Internal table BDCMSG like BDCMSGCOLL
    4. Internal table similar to Ist internal table
    (Third and fourth steps are for error handling)
    5. UPLOAD or WS_UPLOAD function to upload the data from the local file to itab. (Considering file is local file)
    6. Loop at itab.
    Populate BDCTAB table.
    Call transaction <tr.code> using <Bdctab>
    Mode <A/N/E>
    Update <S/A>
    Messages <BDCMSG>.
    Perform check.
    Refresh BDCTAB.
    Endloop.
    7 Form check.
    IF sy-subrc <> 0. (Call transaction returns the sy-subrc if updating is not successful).
    Call function Format_message.
    (This function is called to store the message given by system and to display it along with record)
    Append itab2.
    Display the record and message.
    DIRECT INPUT
    About Direct Input
    In contrast to batch input, this technique does not create sessions, but stores the data directly. It does not simulate the online transaction. To enter the data into the corresponding database tables directly, the system calls a number of function modules that execute any necessary checks. In case of errors, the direct input technique provides a restart mechanism. However, to be able to activate the restart mechanism, direct input programs must be executed in the background only. Direct input checks the data thoroughly and then updates the database directly.
    You can start a Direct Input program in two ways;
    Start the program directly
    This is the quickest way to see if the program works with your flat file. This option is possible with all direct input programs. If the program ends abnormally, you will not have any logs telling you what has or has not been posted. To minimize the chance of this happening, always use the check file option for the first run with your flat file. This allows you to detect format errors before transfer.
    Starting the program via the DI administration transaction
    This transaction restarts the processing, if the data transfer program aborts. Since DI document are immediately posted into the SAP D/B, the restart option prevents the duplicate document posting that occurs during a program restart (i.e., without adjusting your flat file).
    Direct input is usually done for standard data like material master, FI accounting document, SD sales order and Classification for which SAP has provided standard programs.
    First time you work with the Direct Input administration program, you will need to do some preparation before you can transfer data:
    - Create variant
    - Define job
    - Start job
    - Restart job
    Common batch input errors
    - The batch input BDCDATA structure tries to assign values to fields which do not exist in the current transaction screen.
    - The screen in the BDCDATA structure does not match the right sequence, or an intermediate screen is missing.
    - On exceptional occasions, the logic flow of batch input session does not exactly match that of manual online processing. Testing the sessions online can discover by this.
    - The BDCDATA structure contains fields, which are longer than the actual definition.
    - Authorization problems.
    RECORDING A BATCH INPUT
    A B recording allows you to record a R/3 transaction and generate a program that contains all screens and field information in the required BDC-DATA format.
    You can either use SHDB transaction for recording or
    SYSTEM ? SERVICES ? BATCH INPUT ? EDIT
    And from here click recording.
    Enter name for the recording.
    (Dates are optional)
    Click recording.
    Enter transaction code.
    Enter.
    Click Save button.
    You finally come to a screen where, you have all the information for each screen including BDC_OKCODE.
    • Click Get Transaction.
    • Return to BI.
    • Click overview.
    • Position the cursor on the just recorded entry and click generate program.
    • Enter program name.
    • Click enter
    The program is generated for the particular transaction.
    BACKGROUND PROCESSING
    Need for Background processing
    When a large volume of data is involved, usually all batch inputs are done in background.
    The R/3 system includes functions that allow users to work non-interactively or offline. The background processing systems handle these functions.
    Non-interactively means that instead of executing the ABAP/4 programs and waiting for an answer, user can submit those programs for execution at a more convenient planned time.
    There are several reasons to submit programs for background execution.
    • The maximum time allowed for online execution should not exceed 300 seconds. User gets TIMEOUT error and an aborted transaction, if time for execution exceeds 300 seconds. To avoid these types of error, you can submit jobs for background processing.
    • You can use the system while your program is executing.
    This does not mean that interactive or online work is not useful. Both type of processing have their own purposes. Online work is the most common one entering business data, displaying information, printing small reports, managing the system and so on. Background jobs are mainly used for the following tasks; to process large amount of data, to execute periodic jobs without human intervention, to run program at a more convenient, planned time other than during normal working hours i.e., Nights or weekends.
    The transaction for background processing is SM36.
    Or
    Tools ? Administration ? Jobs ? Define jobs
    Or
    System ? services ? Jobs
    Components of the background jobs
    A job in Background processing is a series of steps that can be scheduled and step is a program for background processing.
    • Job name. Define the name of assigned to the job. It identifies the job. You can specify up to 32 characters for the name.
    • Job class. Indicates the type of background processing priority assigned to the job.
    The job class determines the priority of a job. The background system admits three types of job classes: A B & C, which correspond to job priority.
    • Job steps. Parameters to be passed for this screen are as follows:
    Program name.
    Variant if it is report program
    Start criteria for the job: Option available for this are as follows:
    Immediate - allows you to start a job immediately.
    Date/Time - allows you to start a job at a specific name.
    After job - you can start a job after a particular job.
    After event - allows you to start a job after a particular event.
    At operation mode - allows you to start a job when the system switches to a particular operation mode.
    Defining Background jobs
    It is two step process: Firstly, you define the job and then release it.
    When users define a job and save it, they are actually scheduling the report i.e., specifying the job components, the steps, the start time.
    When users schedule program for background processing, they are instructing the system to execute an ABAP/4 report or an external program in the background. Scheduled jobs are not executed until they are released. When jobs are released, they are sent for execution to the background processing system at the specified start time. Both scheduling and releasing of jobs require authorizations.
    HANDLING OF POP UP SCREEN IN BDC
    Many times in transaction pop up screen appears and for this screen you don’t pass any record but some indication to system telling it to proceed further. For example: The following screen
    To handle such screen, system has provided a variable called BDC_CURSOR. You pass this variable to BDCDATA and process the screen.
    Usually such screen appears in many transactions, in this case you are just passing information, that YES you want to save the information, that means YES should be clicked. So you are transferring this information to BDCDATA i.e., field name of YES which is usually SPOT_OPTION. Instead of BDC_OKCODE, you are passing BDC_CURSOR.
    BDC_CURSOR is also used to place cursor on particular field.
    A simple transaction where you are entering customer number on first screen and on next screen data is displayed for the particular customer number. Field, which we are changing here, are name and city. When you click on save, the changed record gets saved.
    Prerequisite to write this BDC interface as indicated earlier is:
    1. To find screen number
    2. To find screen field names, type of the field and length of the field.
    3. To find BDC_OKCODE for each screen
    4. Create flat file.
    generally  Batch Input usually are used to transfer large amount of data. For example you are implementing a new SAP project, and of course you will need some data transfer from legacy system to SAP system.
    CALL TRANSACTION is used especially for integration actions between two SAP systems or between different modules. Users sometimes wish to do something like that click a button or an item then SAP would inserts or changes data automatically. Here CALL TRANSACTION should be considered.
    2. Transfer data for multiple transactions usually the Batch Input method is used.
    check these sites for step by step process:
    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
    Check these link:
    http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
    http://www.sap-img.com/abap/question-about-bdc-program.htm
    http://www.itcserver.com/blog/2006/06/30/batch-input-vs-call-transaction/
    http://www.planetsap.com/bdc_main_page.htm
    call Transaction or session method ?
    null

Maybe you are looking for

  • How do i get the iphone 4 bluetooth to connect to my audi

    my audi is paired and ready for any bluetooth device. when i go into settings and touch the bluetooth>devices all it is doing is searching. with my other phones the connectivity popped up quickly

  • No enhanced podcast with iPad

    I've searched around and found a couple of posts in the iPad discussion that seem to confirm my worst fears: you cannot view an enhanced podcast on an iPad!!!! It's a brick! This must be because the "ipod" app I guess cannot carry out the high-tech s

  • Which partition type option i use and when and why?

    hi i really confused with the types of partition available with essbase, i really want to know which partitioning option i use and in which situation and why should i use that partion type. ok

  • Changing job schedule time

    Hi, I have scheduled a job to execute at a specific time daily. But now I want to change the execution time, job will execute daily. How to do that ? Regards, Amit R.

  • Why do I get "cannot replace temporary folder archive ''message when I try to download Firefox?

    why do I get "cannot replace temporary folder archive ''message when I try to download Firefox? == This happened == Just once or twice == I try to download == == User Agent == Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6; SLCC