Identifying Changed Dates on Documents in SAP B1

Greetingsu2026I have an unusual request that is somewhat long, very serious, and hope folks can help. 
A headquarters customer believes a subsidiary company has u2018made upu2019 dates on invoices for previous billings.  They describe the date changes as u2018radicalu2019 but I have not personally seen these invoices as of yet and am waiting a FAX.  They requested I go into SAP B1 to see if someone has fabricated or made up or changed invoice dates and who it was.  They have some specific large-dollar invoices identified to research.  The person under suspect (who is no longer there) was considered an expert in SAP B1, so maybe she knew all of the different ways to change dates around.  Being an expert means also she might have used some unusual ways to change dates to the ones she wanted.
Here are some of my ideas to discover this situation, but I hope someone can suggest even more steps because I would like to know every way that this situation can be discovered.
1. Open the AR Invoices and use Data > Change Log and concentrate on dates.
2. Run some SQL to validate document dates and system dates.  SELECT T0.DocNum, T0.DocDate, T0.CreateDate, T0.TaxDate, T0.UpdateDate FROM OINV T0 WHERE (T0.DocDate does not equal T0.CreateDate OR T0.TaxDate does not equal T0.CreateDate).  The results would show invoices that maybe had their dates changed.
3.Run a Document Journal in the Financial Module.  Finance > Financial Reports > Accounting > Document Journal with the u2018Expanded Selectionu2019 of AR Invoices and a date range covering the invoices in question.  Then see if the Transaction Numbers are out of sequence.
4. Run a Transaction Journal Report Financials > Financial Reports > Accounting > Transaction Journal Report with AR Invoices.  Compare this report to Document Journal.
5. Run the Utilities functions of Utilities > Check Document Numbering to see if there any anomalies there in the document numbers.
6. Run the Administration > System Initialization > Document Numbering function to see if a special series has been set up.
7. Check out the AR Invoice numbering order by running another simple SQL covering a range of the invoices in question. SELECT T0.DocNum, T0.TaxDate, T0.CreateDate, T0.UpdateDate FROM OINV T0 WHERE T0.DocNum > 1583 AND T0.DocNum < 3251 ORDER BY T0.CreateDate.  Then see if the AR Invoice Numbering Sequence is not consistent.
8. Check out those documents that are connected to each suspect AR Invoice and their associated dates by using the Target and Base Document icons.  For example, if a Deliver Document has dates of January 2007 but the AR Invoice date is September 2006, then someone has played around with dates on at least one of the documents.
9. Get copies of the complete company database before the alleged changes were made and a company database as of today and compare the two contents.  Only good if the backups are maintained for a long time.
Here come the questions on the ways I BELIEVE dates can be changed but not sure how to find and need to work on them:
QUESTION 1 u2013 If a person DTWs invoices up into SAP B1, how can I tell that DTW was used to change the dates, the date of the DTW run, and the dates that were changed?
QUESTION 2 u2013 If a person uses SQL to update dates on SAP B1, how can I find out that SQL has been used, the date of the SQL run, and the dates that were changed?
QUESTION 3 u2013 If a person goes out and changes the workstation and/or server Date and Timestamp Properties, how can I find that they did that and the date changes?  You can do this on your PC by just changing the month, date, and year in Microsoftu2019s Date and Timestamp Properties.
QUESTION 4 u2013 I know SAP has a policy that no SQL can be used to update databases and/or tables and have been told some customers lost support because they did this.  What does SAP do to discover this in their lab?
QUESTION 5 u2013 Are there any notes in the portals to help me find changed dates?
QUESTION 6 u2013 Are there any logs SAP B1 produces that can help identify such changes and how do I find and use them?
QUESTION 7 (and this is big) u2013 Are the other ways dates can be changed on AR Invoices and how would I uncover the way it was done and the needed information of Original Date and Changed Date?
Many, many thanks for any help provided since this is a serious situation.  If you can make any suggestions it would be greatly appreciatedu2026
Zal
Edited by: Zal Parchem on Mar 13, 2009 7:31 AM

Hi Zal
If this person was an "Expert" on SAP Business One then the only way they would have changed dates would probably be directly in SQL itself. The best way to determine this would be to hope that they slipped up somewhere and forgot to change a particular date in let's say one specific table.
For invoices, start with the post date, doc date & create date. Then check each of these to the OJDT/JDT1 tables for any discrepancies. Next check the ADOC/ADO1 table for multiple instances on the invoice. If only 1 instance then check the create date, time & user as well as the aforementioned dates between OINV/INV1 & ADOC/ADO1. If multiple instances, check the dates from 1 instance to the next (This will indicate dates being changed in the system).
Next check the same dates against OINM table. If any of the dates do not tally then the SQL was changed directly.
Hope this helps. Let me know if you need further assistance.
Kind regards
Peter Juby

Similar Messages

  • How to extract meta data of documents from SAP R/3

    dear all,
    i`am working in aproject where we connect the documents for SAP R/3 applications.we maintain our own repository for that purpose.it may be in bound or out bound according to customer needs.the meata data related to the documents is stored in SAP.our requirement now is to have that metadata available in our repository .can any one guide me how to write ABAP code for extracting meata data from SAP and enable even nonSAP users to have the access for the documents.
    thanks in advance
    ravi

    Hi,
    One way to do this is probably set a connection between SAP Database and an external database and store the meta data into external database from where a non-sap user will have an eccess to the data.
    Steps required are :
    1. we have to involve basis team also in that.
    2. they will make one entry
    in DBCON table
    (that entry will point to secondary database/external database)
    (suppose the name of this secondary connection is HRCON)
    3. Also they will make connection string
    in application server.
    4. After that,
    we should have
    the table definition in SAP dd dictionary
    and also
    the same defintion
    in the external database. 
    5. now in abap code,
    we have to use like this.
    DATA: mydbcon(30) TYPE c.
    mydbcon = 'HRCON'.
    INSERT ydev_msg_cur CONNECTION (mydbcon)
    FROM msg_cur .
    <b>Hope this helps.
    Please mark helpful answer.</b>
    Regards,
    Amit Mishra

  • PDFs and books changed date of documents

    iTunes seems to be changing the date on documents transferred to apps. For example, I imported Adobe Photoshop CS5 One on One PDF and even though it is dated 2/21/11 in Finder, in iTunes's File Sharing/Apps/GoodReader Documents it is dated 3/14/70. The same thing is happening to most of the documents transferred to GoodReader.
    In FileApp it does the same thing, two items from 4/3/72 and 6/15/70. CHMate Lite, the same thing, 5/18/71.
    I can't tell if iBooks is doing it because "Books" doesn't show the books/PDFs info.
    I don't know how to interpret this date change, but it is baffling.
    This is re-posted from iTunes discussion.
    Roxy

    I have the same problem trying to sync documents (eg excel from windows) from my PC or my Mac to my iPhone, using iTunes. On the computers the dates are correct. Once synced to the iPhone, the dates range from 1970 to 1971. I don't know if this is relevant, but in some scientific fields dates are expressed as epochal time, with 1970/01/01 00:00 being time 0, and counting every second from there; so, the next day 1970/01/02 00:00 would be time 86400. Is the syncing scrambling dates because of some formatting or conversion error?

  • To Identify changed data in planning layout in BPS

    We have a planning layout  in BPS which user can change data on individual cell.  We also have an EXIT function to distribute data to this layout.
    User changes data on cells then executes the EXIT function to distribute data. During debugging, we see the changed entry with delta amount in the XTH_DATA table. However, there are many entries with similar characteristics; hence we cannot identify the particular changed data, i.e., the changed sales amount, in XTH_DATA of EXIT function. 
    Is there any configuration and/or function to show only the changes data? Any comments/hints are greatly appreciated.
    Best regards,
    Sam

    Hi,
    When you enter for a particular characteristic and remaining characteristic if you left bank , it will store as #  in layout and samething will also in cube. you can check it cube also.
    for eg.
    profitcenter com.code  sales revenue
    100              #              10
    if you want to avoid this then you have to enter all characteristic values.
    Regards,
    Siva.

  • Purchasing document item change date

    Hi GUrus,
    Could some one please explain me what is purchasing document item change date. while checking item changes for one PO i am getting this. it is showing one old value and one new value. only i wanted to know where is that date in side a PO.
    Thanks
    Sha

    Hello ,
    When you go to item level changes , sap shows the change history for that particular line items .
    So it will show all the values which is been changed . In terms of date , the old date is the date at which the line item must have been creaated or changed and the new date is the last change date by the user .
    For e.g .if the line item is changed multiple times , then it will show with respect to each date the change history . For better viewing and understanding you can sort the changes by date & find out what was the last change details .
    Hope its clear .
    Lawrence Fernandes

  • Change Purchase Order : Document Date

    Hi Gurus,
    I would like to change Purchase Order: Document Date due to wrong input but I found out this field has been grayed out from change (ME22/ME22N) after save.
    Can anyone tell me how to solve this problem?
    Thanks & regards,
    Loi

    Dear Gurus,
    Is there is any effect of changing the PO's Document date? What is the usage of PO's Document date, in which area?
    If no effect, can I customize the PO: Document Date field through Application transaction variant function?
    Pls adivse.
    Thanks & regards,
    Loi

  • Date Profile - save date of document's changing

    Hi,
    I want to define date profle for my document type. Date type should store date of document's last change.
    Example when user changes doc's status that Date type should store this date.
    I configured date type in date profile: Determine date only once - unchecked, date rule - Todays, Calculating position - 4 (last on doc), Default values ... - Current Time checked. Only Display Field - checked.
    It does not work.
    Can you show where is the error?
    Regards
    Radek

    If you say 'Determine only once' it determines the value exactly once and then no more, regardless whether it is filled or not. If not set, it tries to determine the date until it finds a value. Once the value is found, no update of the value happens anymore.
    So if you want to write down a value, you need to fill a BAPI like ORDER_SAVE, get the order details there with fm CRM_ORDER_READ, change the values with CRM_ORDER_MAINTAIN, perform a CRM_ORDER_SAVE and then a BAPI_COMMIT_DATA. Not an easy task, but imho the only way.
    Kai

  • Update Last Changed Date when attaching a Document to Opportunity/Activity

    Hi my CRM peers,
    we have the requirement to update the last changed date of the one order object (Activity, Lead, Opportunity) when a user attaches a document to the object. Has anyone solved this requirement?
    Best regards
    Gregor

    Hi Stephen,
    what do you think about using the SEARCH_DOCUMENTS method of CL_CRM_DOCUMENTS to get the documents uploaded during the last day. I fill the table IT_QUERY_PROP is filled to search for the Documents Created starting yesterday:
    Query:
    IT_QUERY_PROP[1]
      PROP_NAME      CREATED_AT
      SIGN           I
      OPTION         BT
      LOW            20100217000000
      HIGH           99991231235959
    And I get this result:
    LT_SRES[1]
      OBJTYPEP       P
      CLASSP         CRM_P_ORD
      OBJIDP         DF1C76C7D7D02BF1ABA8005056857C4E
      OBJTYPEL       L
      CLASSL         CRM_L_ORD
      OBJIDL         DF1C76C7D7D02AF1ABA8005056857C4E
      RANKV          05000
      DOCREFER       0000000001
    When I now use the WHERE_USED method I can find the Business Object where this document is attached to by filling the
    IS_IO parameter:
    IS_IO
      OBJTYPE                        P
      CLASS                          CRM_P_ORD
      OBJID                          DF1C76C7D7D02BF1ABA8005056857C4E
    Now my follow up question is: How can I update the last changed date of the document without changing any data?
    Best regards
    Gregor

  • Approval Procedure - SAP loses the changes to the document

    Good morning to all.
    I need an explanation regarding the approval procedures.
    We have recently upgraded the system from version 2007 SP01 PL10 to version 8.81 PL10.
    We have a approval procedure whit 2 level:
    User A => Create the document
    User B => First level approval.
    If User B approve the document then
    User C => Final level approval
    I noticed that in the previous version, during the phase of approvals, was created a single record in the table ODRF. This record was updated with various changes made by users during the approval phase. The changes made ​​during the approval phase regarding UDF
    Now, with the new version, I find myself with the table ODRF registering a record for each change made to the document that is pending approval.
    So, if User B open the document pending approval, saves it as a draft, then edit some UDF and still saves as a draft, in ODRF table we have 2 line (the first for the first save, the second for the UDF edited and so on...)
    But, when you invoke the document itself to approve or modify it, it always loads the first record from the table ODRF, thus losing all the changes.
    Do you have news about this situation? Are there solutions?
    Sorry for my english...

    Hi GORDON.
    Thank for your reply
    After talking with our partners, I confirm that version 8.81 is not possible to make changes to the UDF fields in a document during the approval phase.
    More precisely, the changes can be made, the document can be saved as a draft during the approval procedure, but at the time of approval, the changes are not shown.
    This is because, in the drafts table (ODRF), unlike what happened in the 2007 SP01 PL10 and even in version 8.80, the changes are saved in other records (line) with other draft number ID respect to the original record, and therefore no longer recoverable and / or visible .
    And, I do not understand why, there is no trace in any official document about SAP to that change.
    Sono incazzato....

  • Is there any Data Mapping document Between S&OP ( model that uses supply planning operator ) and SAP ECC that I will help the client in Data Mapping activity.

    Hello All,
    Is there any Data Mapping document Between S&OP ( model that uses supply planning operator ) and SAP ECC that I will help in Data Mapping activity.
    Thanks,
    Mownesh

    There are standard templates in HCI data sources.
    e.g. 1) Customer Master data template is SOP_MD_CustomerMaster for extracting master data from SAP ECC and load it to S&OP
    KNVP is the table for customer in ECC from that you can select the fields as required
    KUNNR for customer Number
    ADRNR for Address
    List of a few commonly used table names of ECC:
    Product Related:
    MARA – Material Master (MATNR)
    MARC – Material Master with Plant Data (MATNR, WERKS)
    MARD – Material Master with Storage Location Data (MATNR, LGORT, WERKS)
    MAKT – Material Master Material Descriptions (MATNR, MATKL)
    MBEW – Material Valuation Data (MATNR, BWTAR)
    MVKE – Material Master : Sales related Data
    MDKP, MDTB – MRP related Data( Header, Item)
    MCHA, MCHB – Material Batches (Header, Item) (MATNR, WERKS, LGORT, CHARG)
    Vendor/Supplier related:
    LFA1 – vendor data (LIFNR)
    LFB1 --  Company Code Segment : Vendor Data(LIFNR, BUKRS)
    LFC1 --  FI Related Vendor Data (LIFNR, BELNR)
    LFM1 – Pur. Orgn. Related Vendor Data (LIFNR, EKORG)
    PReq/PO, BOM Related:
    EBAN – Pur. Req. Data( BANFN, BNFPO, BADAT, MATNR)
    EINA – Purchase Info. Record(General Data)(INFNR, MATNR, LIFNR)
    EINE – Purchase Info. Record (pur. Orgn. Data) (INFNR, EKORG)
    ELBK, ELBN, ELBP – Vendor Evaluation Related Data
    EKKO – PO Data (Header) (EBELN, BSTYP, BSART)
    EKPO – PO Data (Item) (EBELN, EBELP, MATNR)
    Pur. Req., RFQ and PO are differentiated by Doc Type (BSTYP) in EKKO table.
    For RFQ it is ‘A’ and for PO it is ‘F’
    MKPF – GRN Data (Header) (EBELN, BLDAT, BUDAT, XBLNR, BKTXT)
    MSEG – GRN Data(Item) MBLNR, BWART, LIFNR, MATNR, EBELN)
    Apart from this there are lot of tables which begin with ‘M’ & ‘E’, but we
    use the following very often.
    EQUK – Quota (Header)(QUNUM, MATNR)
    EQUP – Quota (Item) (QUNUM, QUPOS, LIFNR)
    EKBE – PO History Data (EBELN, EBELP, BELNR, BLDAT, MATNR, VGABE)
    EKBZ – PO History with Delivery Costs(EBELN, BELNR, LIFNR, XBLNR)
    EKET – Schedule lines data of a PO(EBELN, EINDT, SLFDT)
    EKES – Vendor Confirmations Data (EBELN, EBTYP, EINDT, XBLNR)
    T163F – Confirmation Texts (EBTYP, EBTXT)
    T156 – Movement Types (BWARE)
    T024 – Purchasing Groups
    T024E – Purchase Organizations
    T163 – Item Category’s in Purchasing Documents(PSTYP)
    T149D – Valuation Types
    T134 – Material Types
    FVLK – Delivery Types
    STKO, STPO – BOM(Bill Of Material) related Data (Header & Item)
    STPU, STPN, STST, STZU – BOM Related Tables
    RKPF, RBKP, RSEG (Header & Item) – MM – FI Related Data
    KONO, KONH – Pricing data
    T006 – Basic Unit Of Measurements
    Customer/Sales Order Related:
    VBAK : Sales Document(Header Data) (VBELN)
    VBAP : Sales Document(Item Data) (VBELN, POSNR, MATNR, ARKTX, CHARG)
    Enquiry, Quotation, Sales Order are differentiated based on Doc.
    Type(VBTYP Field) in VBAK, VBAP Tables for Enquiry VBTYP = A, for Quotation ‘B’ & for Order it is ‘C’.)
    LIKP : Delivery Table(Header Data) (VBELN, LFART, KUNNR, WADAT, INCOL)
    LIPS : Delivery Table(Item Data)(VBELN, POSNR, WERKS, LGORT, MATNR, VGBEL)
    (LIPS – VBGELN = VBAK- VBELN, LIPS-VGPOS = VBAP-POSNR)
    VTTK : Shipment Table(Header Data) (TKNUM)
    VTTP : Shipment Table (Item Data)(TKNUM, TPNUM, VBELN)
    (VTTP – VBELN = LIKP – VBELN)
    VBRK : Billing Table(Header Data) (VBELN, FKART, BELNF)
    VBRP : Billing Table(Item Data) (VBELN, POSNR, FKIMG, NEWR, VGBEL, VGPOS)
    (VERP – AUBEL = VBAK- VBELN, VBRP – VBEL = LIKP – VBELN)
    Apart from these tables there are lot of other tables which starts with ‘V’, but we use the
    following tables frequently.
    VBUK: All Sales Documents status & Admn. Data(Header) (VBELN, VBTYP)
    VBTYP = ‘C’ (Sales Order) VBTYP = ‘L’(Delivery) VBTYP = ‘M’(Invoice)
    VBUP: Sales Documents status & Admin. Data(Item) (VBELN, POSNR)
    VBEP : Sales Document Schedule Lines Data (VBELN, POSNR, EDATU, WMENG)
    VBKD: To get sales related Business data like Payment terms etc.(VBELN, ZTERM)
    VBFA: Sales Document flow data(VBELV, VBELN, POSNV, VBTYP)
    VBPA: Partner functions Data(VBELN, PARVW, KUNNR, LIFNR)
    TVLKT: Delivery Type: Texts(LFART, VTEXT)
    KNA1, KNB1, KNC1 : Customer Master Data and Other Partner’s Data(KUNNR,
    NAME1,LAND1)
    KNVK: Customer Master Contact Person(PARNR, KUNNR)
    KNVV: Customer Master Sales Data.
    LFA1, LFB1, LFC1: Vendor Master Data(To get Transporter data)(LIFNR, NAME1, ORT01)
    MARA, MARC, MARD : Material Master Data(Basic, Plant, St. Location Views)
    TVKO: Sales Organizations(VKORG)
    TVKOV: Distribution Channels(VTWEG)
    TVTA: Divisions(SPART)
    TVKBZ: Sales Office(VKBUR)
    TVBVK: Sales Group(VKGRP)
    T077D: Customer Account Group(KTOKD)
    T001W: Plants(WERKS)
    T001L: Storage Locations(LGORT)
    TWLAD: To get address of Storage Location and Plant(LGORT, ADRNR)
    TVAU: Sales Document (Order) Types
    KONV: Condition Types (pricing) (KNUMV, KSCHL, KWETR)
    T685T: Condition Types Texts.
    ADRC: To get Addresses of Partners
    VBBE, VBBS: Sales Requirements Data
    VBKA: Sales Activities Data
    VBPV: Sales Document Product Proposal
    Based on the functionality you can search ECC table names and fields
    Hope this information is helpful for you.
    Thanks and Regards,
    Anjali

  • My PDF files are now identified as Firefox HTML documents, how to fix it?(only icons changed, extension is still .pdf)

    After I uninstalled Firefox, all icons returned to usual PDF icons and files were identified as "PDF" files,
    but when I installed Firefox (31.0) again, all PDF files again are identified as "Firefox HTML document".
    Extensions do not change, they are always .pdf, and files automatically open in Adobe Acrobat,
    but icons became "firefox HTML documents" icons and it is very confusing.

    Thanks Robinson3 !
    The most economical solution.
    Not only worked for PDF files but also for other similar problem.
    Of all offered solutions this looks the most bang on.
    Hope, the problem will not return (but even if it returns the solution
    is so fast and simple).
    I did exactly the following (all steps included) :
    Control Panel > Folder Options > File Types > New > PDF>Advanced>
    >Associated File Type, and choose "Adobe PDF reader"

  • How to get changed data in SAP HR !

    Hi Gurus,
       I got a new project of HR and now I am  stuck at one place. Please help me where I can find out the change history of HR master records.I have done all my research and I found CDHDR / CDPOS which didn't maintained these data.I got PCL4 table which is HR cluster table but it also didn't show me the changed data. Is there any specific table / report where I can get old and new records or so.
    Each reply is appreciated.
    Thanks,
    Digamber

    Check program RPUAUD00 .
    Change pointers log data only on selected infotypes in order not to overload system. PCL4 is also selective in this respect but I am not sure about that, so you need to look for futher info in this regard.
    Regards
    Marcin

  • SAP APO DP CBF - Change data only at one level

    Hello Guys,
    I am getting error as "Change data only at one level".
    I am getting this error while loading data in the planning book at product level (Details All on products).
    I have a default macro in the data view. However, I am getting proper results when i do a details all on some other characteristic.
    Any clue about these error message ?
    Regards,
    Jacky Jain.

    Hello Guys,
    I am getting error as "Change data only at one level".
    I am getting this error while loading data in the planning book at product level (Details All on products).
    I have a default macro in the data view. However, I am getting proper results when i do a details all on some other characteristic.
    Any clue about these error message ?
    Regards,
    Jacky Jain.

  • 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

  • How to identify reverse or reset document nos from FI tables?

    Hi..
    I have to send FI Documents data from SAP to NON_SAP system. Like from tables BKPF, BSID,BSAD, BSIK,BSAK, BSIS, BSAS. I will send this data through RFC on weekly cycle..Now problen is that if the cleared item document is reset or reverse then the entry from clear item table moves to open item table. Not i am not able to identify such entries ..because in that no change in create or change date..so can anyone tell me?
    Its urgent..please.
    Thanks.

    Hi
    Please use field BSEG-XRAGL to identify whether the document is reversed or not?
    Please use field BSEG-STBLG if an open item is reversed. This field will be filled with reversal document number.
    Regards
    RS
    Edited by: RS on Dec 20, 2007 7:17 AM

Maybe you are looking for

  • What is the  difference between list display and grid display in alv report

    Hai genious i am a new of the abap, i dont know the alv report, i have a small doubt, can u please tell me  what is the main difference between list display and grid display in alv report thanks&regards chinnu

  • Capex IO

    Hello, we have a scenario of Investment order for Asset.On making downpayment for asset & on settlement-the internal order report for actuals does not show the amount after settlemtn.Have created relevant statitical cost elements. Regards Shreeratan

  • I can't register my bb

    Hello, I've been trying to create my account and keep getting a mesage that says that my bb is not register with my provider, that I have to go to host routing table and select the option  Registe Now. I do that and nothing happens, I tried my sim on

  • Posting COPA fields through IDOC

    Hi I am using IDOC FIDCCP02 (Basic Type) to post FI Documents to SAP from external legacy system. We need to add couple of COPA fields to this INBOUND interface(related to profitability analysis). Can I extend the IDOC FIDCCP02 to include COPA fields

  • How to know where and when my account logged in by...

    Recently my account was used by someone and sent out a misleading message, which cause a great trouble to me. I sensed the one was in purpose. Can I check where and when my account was used on that date? How? Please help !!! waiting for your reply...