Sample code of  change ATRHistBytes

package hands_on_setATRHistBytes;
import javacard.framework.*;
import visa.openplatform.OPSystem;
* @author sonnyyu
public class hands_on_setATRHistBytes_cls extends Applet {
     private static final byte[] newATRHistory  = { 
          (byte)'J', (byte)'C', (byte)'O', (byte)'P', (byte)'4', (byte)'1', (byte)'V', (byte)'2', (byte)'2', (byte)'1'
     private static final byte[] newATRHistory1  = { 
          (byte)'J', (byte)'C', (byte)'O', (byte)'P', (byte)'4', (byte)'1', (byte)'V', (byte)'2', (byte)'2', (byte)'3'
     public static void install(byte[] bArray, short bOffset, byte bLength) {
          // GP-compliant JavaCard applet registration
          new hands_on_setATRHistBytes_cls().register(bArray,
                    (short) (bOffset + 1), bArray[bOffset]);
     public void process(APDU apdu) {
          // Good practice: Return 9000 on SELECT
          if (selectingApplet()) {
               return;
          byte[] buf = apdu.getBuffer();
          // good practice: If you don't know the CLA, say so:
          if (buf[ISO7816.OFFSET_CLA] != 0) ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED);
          switch (buf[ISO7816.OFFSET_INS]) {
          case (byte) 0x00:
               if (OPSystem.setATRHistBytes(newATRHistory, (short)0, (byte)newATRHistory1.length))
                    return;
               else
                    ISOException.throwIt(ISO7816.SW_WARNING_STATE_UNCHANGED);
          case (byte) 0x01:
               if (OPSystem.setATRHistBytes(newATRHistory1, (short)0, (byte)newATRHistory1.length))
                    return;
               else
                    ISOException.throwIt(ISO7816.SW_WARNING_STATE_UNCHANGED);
          default:
               // good practice: If you don't know the INStruction, say so:
               ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED);
Card Manager AID   :  A000000003000000
Card Manager state :  OP_READY
    Application:  SELECTABLE (-----D--) A00000000002   
    Load File  :      LOADED (--------) A0000000035350   (Security Domain)
     Module    :                        A000000003535041
    Load File  :      LOADED (--------) A00000000001   
     Module    :                        A00000000002
/atrresetCard with timeout: 0 (ms)
--Waiting for card...
ATR=3B FA 18 00 00 81 31 FE 45 4A 43 4F 50 34 31 56    ;.....1.EJCOP41V
    32 32 31 9D                                        221.
ATR: T=1, FI=1/DI=8 (31clk/etu), N=0, IFSC=254, BWI=4/CWI=5, Hist="JCOP41V221"
/send 00010000 => 00 01 00 00                                        ....
(28971 usec)
<= 90 00                                              ..
Status: No Error
/atrresetCard with timeout: 0 (ms)
--Waiting for card...
ATR=3B FA 18 00 00 81 31 FE 45 4A 43 4F 50 34 31 56    ;.....1.EJCOP41V
    32 32 33 9F                                        223.
ATR: T=1, FI=1/DI=8 (31clk/etu), N=0, IFSC=254, BWI=4/CWI=5, Hist="JCOP41V223"Now you could set ATR after perso the card.
Make sure install the applet as default applet. Application: SELECTABLE (-----D--) A00000000002

Good post, sonnyyu. I would a comment though: Visa OpenPlatform is proprietary to Visa. It is better to use the GlobalPlatform standard.
import org.globalplatform.*;
GPSystem.setATRHistBytes(newATRHistory, (short)0, (byte) newATRHistory.length);
..

Similar Messages

  • SDK sample code for Changing name of Exported file thru Webi schedule

    Hi experts,
    I am wanting to know if someone has got any sample Java SDK code which I can use to login to FTP and rename the pdf files generated from webi schedule script and append customised date format towards the end.

    Hi Prabhat,
    For online samples
    https://www.sdn.sap.com/irj/boc/samples
    For detalied descripation on BO SDK.
    https://www.sdn.sap.com/irj/boc/sdklibrary
    For BOE SDK guide.
    http://help.sap.com/businessobject/product_guides/boexir31/en/boesdk_java_dg_12_en.zip
    This would give you complete information on scheduling.
    For RE SDK guide.
    http://help.sap.com/businessobject/product_guides/boexir31/en/resdk_java_dg_12_en.zip
    This would give you information on how deal with Desktop intelligence report and Web intelligence report.

  • Badi ME_PROCESS_REQ_CUST Sample Code required for changing the values

    Dear Friends,
    I am new to the Badi technology. We would like to populate/change the standard field values, (Purchasing group) during Purchase Requisition creation/change.
    Method --> PROCESS_ITEM.
    I tried the following code, but system blnaks out all the field values entered during PR creation.
    Appreciate, if you could provide me some sample code which can be of help.
    Reg
    Kumar
    Sample code----
    METHOD if_ex_me_process_req_cust~process_item .
    DATA: k_mereqitem          TYPE mereq_item,
            om_data              type mereq_item,
            om_datax             type mereq_itemx,
        k_mereqitem = im_item->get_data( ).
        check im_count = 1.
        if k_mereqitem-bsart = 'ST' and
           k_mereqitem-loekz = ' '.
        om_data-pstyp = '5'. " assign default item category code
        om_data-bnfpo = k_mereqitem-bnfpo.
        om_data-WERKS = k_mereqitem-WERKS.
        om_datax-pstyp = 'X'.
        call method im_item->set_datax
             exporting im_datax = om_datax.
        call method im_item->set_data
             exporting im_data =  om_data.
        endif.
    ENDMETHOD.

    Hi Kumar,
    i have not a special solution for your case, but i use this BADI with great effort
    As my comments in example are in german lg. i explain in short words what i do:
    X) define data
    1) select data from base item
    1a) header-data
    1b) item data (easy)
    1c) accounting data
    2+3) check field values, post warning message + mostly change values + sometimes set cursor focus on field
    Have a look and give me some points if my example increased your BADI knowledge
    regards
    Jörg
    METHOD if_ex_me_process_po_cust~process_item .
    * Business-Add-Inn ME_PROCESS_PO_CUST
    * Jörg Sauterleute - 23.12.2005
    * Ablauf:
    * 1. Datenbschaffung
    * 2. Feldänderungen prüfen + Warnung ausgeben
    * 3. Feldinhalte prüfen + evtl. ändern u. Hinweis ausgeben
      DATA: ls_mepoitem TYPE mepoitem,
            ls_mepoheader TYPE mepoheader,
            ls_mepoaccounting TYPE mepoaccounting.
    * Interfacereferenz auf <if_purchase_order_mm>
      DATA: header_obj TYPE REF TO if_purchase_order_mm.
    * Interfacereferenz auf <if_purchase_order_account_mm> über Tabelle
      DATA: it_accountings TYPE purchase_order_accountings, "Tabelle
            accounting_obj TYPE purchase_order_accounting.
    * Include für Ausgabe von Meldungen
    * im BAdI ME_PROCESS_PO_CUST niemals ABAP-Statement MESSAGE verwenden!
      INCLUDE mm_messages_mac.
    * Hilfsvariablen
      DATA: h_change_mepoitem TYPE c,
            h_text TYPE string.
      IF sy-sysid = 'HLT'. break sau. ENDIF.
    * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    * 1. Datenbeschaffung
    * Kopfdaten
      header_obj = im_item->get_header( ).
      ls_mepoheader = header_obj->get_data( ).
    * Positionsdaten
      ls_mepoitem = im_item->get_data( ).
    * Kontierungsdaten (Accounting) über Tabelle it_accountings
      it_accountings = im_item->get_accountings( ).
    * ...IF eingebaut, weil sonst später Abbruch, wenn sy-subrc <> 0
      IF NOT ls_mepoitem-knttp IS INITIAL.
        LOOP AT it_accountings INTO accounting_obj.
          ls_mepoaccounting = accounting_obj-accounting->get_data( ).
        ENDLOOP.
      ENDIF.
    * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    * 2. Daten prüfen -> Warnmeldung
    * Feld Empfänger (Kontierung) prüfen -> Warnmeldung
      IF ls_mepoheader-ekorg = '1000' AND
         ls_mepoheader-bsart = 'IB'.
        IF NOT ls_mepoitem-knttp IS INITIAL.
          CASE ls_mepoheader-ekgrp.
            WHEN '500' OR '501'.
              IF NOT ls_mepoaccounting-wempf IS INITIAL.
                mmpur_metafield mmmfd_recipient.       "Warenempfänger - Cursor setzen
                mmpur_message_forced 'I' 'ME' '303' text-011 '' '' ''.
    * Warnmeldung wieder aus Protokoll entfernen.
                IF ls_mepoaccounting-wempf IS INITIAL.
                  mmpur_remove_messages_by_id ls_mepoaccounting-id.
                  mmpur_business_obj_id ls_mepoaccounting-id.
                ENDIF.
              ENDIF.
            WHEN OTHERS.
              IF ls_mepoaccounting-wempf IS INITIAL.
                mmpur_metafield mmmfd_recipient.       "Warenempfänger - Cursor setzen
                mmpur_message_forced 'W' 'ME' '303' text-010 '' '' ''.
              ENDIF.
    * Warnmeldung wieder aus Protokoll entfernen.
              IF NOT ls_mepoaccounting-wempf IS INITIAL.
                mmpur_remove_messages_by_id ls_mepoaccounting-id.
                mmpur_business_obj_id ls_mepoaccounting-id.
              ENDIF.
          ENDCASE.
        ENDIF.
      ENDIF.
    * Ende Feld Empfänger (Kontierung) prüfen -> Warnmeldung
    * Ende test
    * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    * 3. Positionsdaten prüfen/ändern -> setzen
      CLEAR: h_change_mepoitem,
             h_text.
    * Kennzeichen Wareneingang prüfen/ändern
    * Belegart 'NB' immer mit "Wareneingang" wegen Log. Rechnungsprüfung
    * Belegart 'IB' immer ohne "Wareneingang" weil Einsatz Workflow
    * (Kennzeichen 'WEPOS' setzen/nicht setzen)
      IF NOT ls_mepoitem-knttp IS INITIAL.
        CASE ls_mepoheader-bsart.
          WHEN 'NB'.
    * Prüfung ob gesetzt
    * Wenn nicht, dann setzen und Daten übergeben
    * Cursor auf Metafeld (aus Typgruppe MMMFD) für Fehlerbehandlung
            IF ls_mepoitem-wepos IS INITIAL.
              ls_mepoitem-wepos = 'X'.
              h_change_mepoitem = 'X'.
    *           im_item->set_data( EXPORTING im_data = ls_mepoitem ).
              h_text = text-001.
              mmpur_metafield mmmfd_gr_ind .       "WE-Kennzeichen - Cursor setzen
    *           message erst später ausführen!
    *           mmpur_message_forced 'I' 'ME' '303' text-001 '' '' ''.
            ENDIF.
          WHEN 'IB'.
    * Prüfung ob nicht gesetzt
    * Wenn doch, dann entfernen und Daten übergeben
    * Cursor auf Metafeld (aus Typgruppe MMMFD) für Fehlerbehandlung
            IF NOT ls_mepoitem-wepos IS INITIAL.
              ls_mepoitem-wepos = ' '.
              h_change_mepoitem = 'X'.
    *            im_item->set_data( EXPORTING im_data = ls_mepoitem ).
              h_text = text-002.
              mmpur_metafield mmmfd_gr_ind .       "WE-Kennzeichen - Cursor setzen
    *           message erst später ausführen!
    *           mmpur_message_forced 'I' 'ME' '303' text-002 '' '' ''.
            ENDIF.
        ENDCASE.
      ENDIF.
    * Ende Kennzeichen Wareneingang prüfen/ändern
    * Kennzeichen aut. WE-Abrech. (Rechnung) prüfen/ändern
    * (für autom. Gutschriftsverfahren Verpackungseinkauf)
    * Kreditordaten
      DATA: it_lfm1 TYPE TABLE OF lfm1,
            wa_lfm1 TYPE lfm1.
      IF ls_mepoheader-ekorg = '1000' AND
         ls_mepoheader-bsart = 'NB'   OR
         ls_mepoheader-bsart = 'KA'.
        IF ls_mepoitem-xersy IS INITIAL AND
           ls_mepoitem-umson IS INITIAL.                    "kostenlose Lieferung
          SELECT * FROM lfm1 INTO CORRESPONDING FIELDS OF TABLE it_lfm1
                   WHERE lifnr = ls_mepoheader-lifnr AND
                         ekorg = ls_mepoheader-ekorg.
          IF sy-subrc = 0.
            READ TABLE it_lfm1 INTO wa_lfm1 INDEX 1.
            IF wa_lfm1-xersy = 'X'.
              ls_mepoitem-xersy = 'X'.
              h_change_mepoitem = 'X'.
    *          im_item->set_data( EXPORTING im_data = ls_mepoitem ).
              h_text = text-005.
              mmpur_metafield mmmfd_ers.       " Kennz. aut.WE-Abrechnung - Cursor setzen
    *            message erst später ausführen!
    *            mmpur_message_forced 'I' 'ME' '303' text-005 '' '' ''.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    * Ende Kennzeichen aut. WE-Abrech. (Rechnung) prüfen/ändern
    * Kennzeichen WE-bezogene Rechnungsprüfung (Rechnung) prüfen/ändern
    * (für autom. Gutschriftsverfahren Verpackungseinkauf)
    * Kreditordaten bereits deklariert
    *  DATA: it_lfm1 TYPE TABLE OF lfm1,
    *        wa_lfm1 TYPE lfm1.
      IF ls_mepoitem-knttp IS INITIAL.
    * nicht anwenden bei kontierten Bestellungen
        IF ls_mepoitem-pstyp = 0.
    * nicht anwenden bei gefülltem Positionstyp (z.B. 'L' = Lohnbearbeitung, Preis 0,00 EUR)
          IF ls_mepoheader-ekorg = '1000' AND
             ls_mepoheader-bsart = 'NB'   OR
             ls_mepoheader-bsart = 'KA'.
            IF ls_mepoitem-webre IS INITIAL AND
               ls_mepoitem-umson IS INITIAL.                    "kostenlose Lieferung
              SELECT * FROM lfm1 INTO CORRESPONDING FIELDS OF TABLE it_lfm1
                       WHERE lifnr = ls_mepoheader-lifnr AND
                             ekorg = ls_mepoheader-ekorg.
              IF sy-subrc = 0.
                READ TABLE it_lfm1 INTO wa_lfm1 INDEX 1.
                IF wa_lfm1-webre = 'X'.
                  ls_mepoitem-webre = 'X'.
                  h_change_mepoitem = 'X'.
    *          im_item->set_data( EXPORTING im_data = ls_mepoitem ).
                  h_text = text-006.
                  mmpur_metafield mmmfd_gr_based_iv.   "WE-bezogene RP - Cursor setzen
    *            message erst später ausführen!
    *            mmpur_message_forced 'I' 'ME' '303' text-006 '' '' ''.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    * Ende Kennzeichen WE-bezogene Rechnungsprüfung (Rechnung) prüfen/ändern
    ** Kennzeichen Auftragsbestätigungspflicht prüfen/ändern
    ** (bisher nur Natec)
    ** Infosatzdaten (Konditionen) deklarieren
    ** Verweis of Tabelle mit Kopfzeilen immer mit TYPE TABLE OF
    *  DATA: it_ekomd TYPE TABLE OF ekomd,
    *        wa_ekomd TYPE ekomd.
    *  IF ls_mepoheader-ekorg = '1300' AND
    *     ls_mepoheader-bsart = 'NB'   .
    *    CALL FUNCTION 'ME_GET_INFORECORD_CONDITIONS'
    *      EXPORTING
    *        i_ekorg = ls_mepoheader-ekorg
    *        i_esokz = '0'                                       " '0' = NB
    *        i_infnr = ls_mepoitem-infnr
    *        i_lifnr = ls_mepoheader-lifnr
    *        i_matkl = ls_mepoitem-matkl
    *        i_matnr = ls_mepoitem-matnr
    *        i_werks = ls_mepoitem-werks
    *      TABLES
    *        tekomd  = it_ekomd.
    *    SORT it_ekomd BY datbi DESCENDING.
    *    READ TABLE it_ekomd INTO wa_ekomd INDEX 1.
    *    CASE ls_mepoheader-ekorg.
    *      WHEN '1300'.
    **     Anforderung Natec: wenn Infosatz-Kondition
    **       a)  leer o. nicht gültig  => AB setzen, wenn fehlt
    **       b)  älter       2 Monate  => AB setzen, wenn fehlt
    **       c)  nicht älter 2 Monate  => AB entfernen, wenn gesetzt
    **     Hilfsvariablen
    *        DATA: h_vgldat   TYPE sy-datum.   " Vergleichsdatum
    *        DATA: h_ergebnis TYPE c.
    **     Alter der Infosatzkondition ermitteln.
    *        CALL FUNCTION 'CCM_GO_BACK_MONTHS'
    *          EXPORTING
    *            currdate   = sy-datum
    *            backmonths = '002'
    *          IMPORTING
    *            newdate    = h_vgldat.
    *        IF wa_ekomd-datbi < sy-datum OR    " gefunden Kondition nicht gültig oder
    *           wa_ekomd-datbi IS INITIAL.      " keine Kondition gefunden
    *          h_ergebnis = 'a'.
    *        ENDIF.
    *        IF wa_ekomd-datab < h_vgldat.
    *          h_ergebnis = 'b'.
    *        ENDIF.
    *        IF wa_ekomd-datab > h_vgldat.
    *          h_ergebnis = 'c'.
    *        ENDIF.
    **       Prüfung ob nicht gesetzt
    *        IF ls_mepoitem-kzabs = ' ' AND
    *                  h_ergebnis = 'a' OR
    *                  h_ergebnis = 'b' .
    *          ls_mepoitem-kzabs = 'X'.
    *          h_change_mepoitem = 'X'.       "Merker setzen, geändert wird am Schluss
    **               im_item->set_data( EXPORTING im_data = ls_mepoitem ).
    *          h_text = text-003.
    **               message erst später ausführen!
    **               mmpur_message_forced 'I' 'ME' '303' text-004 '' '' ''.
    *        ENDIF.
    **       Prüfung ob gesetzt
    *        IF ls_mepoitem-kzabs = 'X' AND
    *           h_ergebnis        = 'c' .
    *          ls_mepoitem-kzabs = ' '.
    *          h_change_mepoitem = 'X'.       "Merker setzen, geändert wird am Schluss
    **               im_item->set_data( EXPORTING im_data = ls_mepoitem ).
    *          h_text = text-004.
    **               message erst später ausführen!
    **               mmpur_message_forced 'I' 'ME' '303' text-003 '' '' ''.
    *        ENDIF.
    *    ENDCASE.
    *  ENDIF.
    ** Ende Kennzeichen Auftragsbestätigungspflicht prüfen/ändern
    * Bestell-/Bestellpreis-Mengeneinheit prüfen/setzen
      DATA: h_txz01 TYPE mepoitem-txz01.   " Materialkurztext
      IF   ( ls_mepoheader-ekorg = '1000' OR
             ls_mepoheader-ekorg = '1500' ) AND
             ls_mepoheader-bsart = 'IB' AND
         NOT ls_mepoitem-knttp IS INITIAL.
    * Vergleichen ob eingegebene Mengeneinheit in Kurztext "avisiert"
        CONCATENATE '(' ls_mepoitem-meins ')' INTO h_txz01.
        IF ls_mepoitem-txz01 CS h_txz01.
          IF NOT ls_mepoitem-meins IS INITIAL.
            mmpur_metafield mmmfd_unit .       "Steuer-Kennz. - Cursor setzen
            mmpur_message_forced 'W' 'ME' '303' 'ME' ls_mepoitem-meins
                                                     text-031 ''.
          ENDIF.
    * sonst standarmäßig 'LE' setzen wegen Problemen bei Obligo
        ELSE.
          IF NOT ls_mepoitem-meins = 'LE'.
            ls_mepoitem-meins = 'LE'.
            ls_mepoitem-bprme = 'LE'.
            h_change_mepoitem = 'X'.
    *      im_item->set_data( EXPORTING im_data = ls_mepoitem ).
            h_text = text-030.
            mmpur_metafield mmmfd_unit .             "Steuer-Kennz. - Cursor setzen
    *      message erst später ausführen!
    *      mmpur_message_forced 'I' 'ME' '303' text-030 '' '' ''.
          ENDIF.
        ENDIF.
      ENDIF.
    * Ende Bestell-Mengeneinheit prüfen/ändern
    * Steuerkennzeichen prüfen/setzen (für EK-Gruppe 500,501)
      IF ls_mepoheader-ekorg = '5000' AND
         ls_mepoitem-matnr IS INITIAL.
        CASE ls_mepoheader-ekgrp.
          WHEN '500' OR '501'.
            IF ls_mepoitem-mwskz IS INITIAL.
              ls_mepoitem-mwskz = 'V4'.
              h_change_mepoitem = 'X'.
    *    "      im_item->set_data( EXPORTING im_data = ls_mepoitem ).
    *          h_text = text-020.
    *          mmpur_metafield mmmfd_tax_code .       "Cursor Steuer-Kennz.
    *    "      message erst später ausführen!
    *    "      mmpur_message_forced 'I' 'ME' '303' text-020 '' '' ''.
            ENDIF.
        ENDCASE.
      ENDIF.
    * Ende Steuerkennzeichen prüfen/ändern
    * zu 3.
    * zum Schluss noch die geänderten mepoitem-xxxx setzen
    * + gleiche Meldungen (I ME 303) ausgeben
      IF h_change_mepoitem = 'X'.
        im_item->set_data( EXPORTING im_data = ls_mepoitem ).
      ENDIF.
      IF NOT h_text IS INITIAL.
        mmpur_message_forced 'I' 'ME' '303' h_text '' '' ''.
      ENDIF.
    * Ende Daten prüfen/ändern -> setzen
    ENDMETHOD.                    "IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM

  • Code sample for using change document function modules

    Can someone send me some sample code for using function modules CHANGEDOCUMENT_READ_HEADER and CHANGEDOCUMENT_READ_POSITIONS?  I'm specifically looking for changes that occured to the standard price field in the material master (MBEW-STPRS) and I need to pull the most recent price change for a given material.  I'm not sure how to write the code efficiently since I don't have a date to pass (again, since we're looking for the most recent change.)
    Thanks!

    hi check this..
    CHANGEDOCUMENT_READ_HEADERS
    Example:
    CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
    EXPORTING
    objectclass = 'EINKBELEG'
    objectid = l_objectid
    username = space
    TABLES
    i_cdhdr = lt_cdhdr.
    LOOP AT lt_cdhdr WHERE udate IN s_aedat.
    CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
    EXPORTING
    changenumber = lt_cdhdr-changenr
    TABLES
    editpos = lt_editpos.
    LOOP AT lt_editpos WHERE fname = 'LOEKZ'
    AND f_new = 'L'.
    p_desc = text-r01. " Cancel Contract
    ENDLOOP.
    ENDLOOP.
    CHANGEDOCUMENT_READ_POSITIONS
    Example:
    CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
    EXPORTING
    objectclass = 'EINKBELEG'
    objectid = l_objectid
    username = space
    TABLES
    i_cdhdr = lt_cdhdr.
    LOOP AT lt_cdhdr WHERE udate IN s_aedat.
    CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
    EXPORTING
    changenumber = lt_cdhdr-changenr
    TABLES
    editpos = lt_editpos.
    LOOP AT lt_editpos WHERE fname = 'LOEKZ'
    AND f_new = 'L'.
    p_desc = text-r01. " Cancel Contract
    ENDLOOP.
    ENDLOOP.
    Check this link.
    http://www.sap-img.com/mm001.htm
    <REMOVED BY MODERATOR>
    venkat.
    Edited by: Alvaro Tejada Galindo on Mar 18, 2008 4:05 PM

  • How to create a database for sample code from Tutorial/Book?

    I want to try out the sample code from [http://shop.oreilly.com/product/0636920013471.do] for the book SQL Pocket Guide 3rd Ed.
    I have downloaded the oracle vm/appliance for oracle 11g2 and I have started sqlplus as sysdba.
    I'm feeling overwhelmed with these links describing how to create a database:
    [http://www.adp-gmbh.ch/ora/admin/creatingdbmanually.html]
    [http://tldp.org/HOWTO/Oracle-7-HOWTO-3.html]
    [http://www.adp-gmbh.ch/ora/admin/creatingdbmanually.html]
    (1) What is the command to list the existing databases?
    (2) What is the command to delete an existing database?
    (3) When creating a new database with the create database command, is it necessary to specify the logfile, character set, national character set, datafile, sysaux datafile, undo tablespace, temp table space? Do these have reasonable defaults? I'm not sure what proper directories are to specify for Linux and the examples are for windows.
    Can someone give me a simplified create database command to create a database called 3rdEdPocketGuide? Should I follow the example at [http://tldp.org/HOWTO/Oracle-7-HOWTO-3.html] and instead of orcl use 3rdEdPocketGuide?
    (4) What command do I use to execute the script that comes with the book SQL Pocket Guide 3rd Ed? This is the script that has all the drop table, create table and insert commands in it.
    (5) What command do I use in sqlplus to set the current default database prior to running this script? Perhaps this is the connect command? I don't want my script to create tables in the system database.
    (6) I tried the command "connect 3rdEdPocketGuide" and it prompted for a password! Yikes! What password? Do I need to specify a password when I create a database? I cannot tell if I have successfully created such a database or it is just prompting me for a password to thwart malicious users. Is it is possible to create databases which don't require a password or maybe a zero length password?
    Thanks
    Siegfried
    Edited by: user8816970 on Sep 26, 2012 12:01 PM
    Edited by: user8816970 on Sep 26, 2012 12:18 PM

    user8816970 wrote:
    Paul,
    Thanks! I tried changing my profile name to siegfried but I'm not seeing the change...
    Anyway, I'm trying your suggestion to use SQL Developer which was already installed in the virtual box appliance and I cannot figure out how to get a connection.
    When I use the defaults of sid=xe, port=1521, hostname=localhost and specify
    username=sysdba
    password=
    I get status: failure - test failed: listener refursed connection with the following error: ORA 12505, TNS: listener does not current know of sid given.
    So I try sid=orcl and that works better: status: failure - test failed: ORA-01017: invalid username/passowrd; login denied
    OK, sqlplus let me in with out a password, why does not this work?
    So I try checking the box for "OS Authentication" and I get the same error!
    Hoek: I tried searching the documentation and found "3 Exploring Oracle Database with SQL Developer" at http://docs.oracle.com/cd/E11882_01/appdev.112/e10766/toc.htm but following those directions did not help. Can you be more specific? The directions were for a tutorial and I need to know what the passwords are for the database set up with [http://www.oracle.com/technetwork/database/enterprise-edition/databaseappdev-vm-161299.html|http://www.oracle.com/technetwork/database/enterprise-edition/databaseappdev-vm-161299.html] . I also found [http://docs.oracle.com/cd/E11882_01/appdev.112/e10766/tdddg_connecting.htm#CEGHFHIG|http://docs.oracle.com/cd/E11882_01/appdev.112/e10766/tdddg_connecting.htm#CEGHFHIG] but that did not help either.
    Everyone:
    Do I need to create a user using SQL*Plus first so I can login with "Oracle SQL Developer" so I create my database called? What would be the "create user" command I would execute?
    OK, so I run sqlplus and issue these commands
    create user siegfried identified by abc ;
    grant connect to siegfried ;
    connect siegfried/abc;
    Now, how do I create a database? In Microsoft SQL Server one has to create a database first and if you just start creating tables without creating a database first, the tables will be created in the system database and this is usually undesirable.
    Sometimes a database is known in the java connection string as the catalog. Is there any such analog in oracle SQL plus?
    So now what do I do? I want to create a bunch of tables using my script I downloaded from 3rd Ed SQL Pocket Guide. Does my new user "siegfried" have the right to create tables? I guess I could try but I don't want to create tables in the system database.
    I noticed I can also use "Oracle SQL Developer" to connect with my new "siegfried" account. It seems that I should have been able to connect with sysdba... strange.
    So now I am connected in the "Oracle SQL Developer" and I see no list of databases.
    Thanks!
    Siegfried
    >Paul,
    Thanks! I tried changing my profile name to siegfried but I'm not seeing the change...
    Anyway, I'm trying your suggestion to use SQL Developer which was already installed in the virtual box appliance and I cannot figure out how to get a connection.
    When I use the defaults of sid=xe, port=1521, hostname=localhost and specify
    username=sysdba
    password=
    I get status: failure - test failed: listener refursed connection with the following error: ORA 12505, TNS: listener does not current know of sid given.
    So I try sid=orcl and that works better: status: failure - test failed: ORA-01017: invalid username/passowrd; login denied
    OK, sqlplus let me in with out a password, why does not this work?
    So I try checking the box for "OS Authentication" and I get the same error!
    Hoek: I tried searching the documentation and found "3 Exploring Oracle Database with SQL Developer" at http://docs.oracle.com/cd/E11882_01/appdev.112/e10766/toc.htm but following those directions did not help. Can you be more specific? The directions were for a tutorial and I need to know what the passwords are for the database set up with [http://www.oracle.com/technetwork/database/enterprise-edition/databaseappdev-vm-161299.html|http://www.oracle.com/technetwork/database/enterprise-edition/databaseappdev-vm-161299.html] . I also found [http://docs.oracle.com/cd/E11882_01/appdev.112/e10766/tdddg_connecting.htm#CEGHFHIG|http://docs.oracle.com/cd/E11882_01/appdev.112/e10766/tdddg_connecting.htm#CEGHFHIG] but that did not help either.
    Everyone:
    Do I need to create a user using SQL*Plus first so I can login with "Oracle SQL Developer" so I create my database called? What would be the "create user" command I would execute?
    OK, so I run sqlplus and issue these commands
    create user siegfried identified by abc ;
    grant connect to siegfried ;
    connect siegfried/abc;
    above does NOT use SQL*Net to connect to the instance
    >
    Now, how do I create a database? In Microsoft SQL Server one has to create a database first and if you just start creating tables without creating a database first, the tables will be created in the system database and this is usually undesirable.
    Sometimes a database is known in the java connection string as the catalog. Is there any such analog in oracle SQL plus?
    So now what do I do? I want to create a bunch of tables using my script I downloaded from 3rd Ed SQL Pocket Guide. Does my new user "siegfried" have the right to create tables? I guess I could try but I don't want to create tables in the system database.
    I noticed I can also use "Oracle SQL Developer" to connect with my new "siegfried" account. It seems that I should have been able to connect with sysdba... strange.
    So now I am connected in the "Oracle SQL Developer" and I see no list of databases.SQL Developer can only connect to the instance via SQL*Net
    >
    Thanks!
    Siegfrieda database in SQL Server is same as schema/user in Oracle

  • Need sample code with RV_INVOICE_CREATE used

    Hi everybody!
    I need sample code with RV_INVOICE_CREATE or similar FMs used.
    The thing is that I do not know how to populate parametres of this and other invoicing FMs....
    For example, there are some tables to be passed to RV_INVOICE_CREATE
         TABLES
              XKOMFK     = XKOMFK
              XKOMV       = XKOMV
              XTHEAD      = XTHEAD
              XVBFS        = XVBFS
              XVBPA        = XVBPA
              XVBRK        = XVBRK
              XVBRP        = XVBRP
              XVBSS        = XVBSS
    How to populate them? I mean how to fill them with needed values?
    Useful answers will be awarded.
    Kind regards, M.

    RV_INVOICE_CREATE is the function module to create invoice based on delivery .
    when you pass delivery number ,it will create invoice ,see the invoice number in vf02,vf03 transaction. and also see the data vbrk,vbrp tables
    I have done this development and i have cancelled invoice,reverse goods issue,updated the delivery and again i am createing invoice..see the below progrm to get better understanding.
    REPORT ZWM_OVERWEIGHT_FIX  no standard page heading
                               message-id zwm.
    ======================================================================
    Program Name : ZWM_OVERWEIGHT_FIX                                    *
    Description  : Tool to fix Overweight in delivery line item,         *
                   Used All Function module to cancel invoice ,          *
                   Reverse the goods issue  ,Update Delivery qty,Create  *
                   invoice                                               *
    Author       : Seshu                                                 *
    Date         : 05/08/2007                                            *
    MODIFICATION HISTORY                                                 *
    DATE    | AUTHOR   | CHANGE #   | DESCRIPTION OF MODIFICATION        *
    --|||--
    05/08/07| Seshu    | DEVK921979 | Initial                            *
    D A T A - D E C L A R A T I O N     *******************
    Tables
    Tables : vbak,
             vbap,
             vbfa,
             likp,
             lips,
             vbrk,
             vbrp.
    Internal Tables
    data : i_lips like lips occurs 0 with header line,
           i_vbap like vbap occurs 0 with header line.
    Variables
    data : v_deliv like vbfa-vbelv,
           v_invoic like vbfa-vbelv.
    Data Declaration Part for Post Goods Issue
    DATA: l_vbeln LIKE likp-vbeln,
          l_vbkok LIKE vbkok,
          i_prot LIKE prott OCCURS 0 WITH HEADER LINE,
          ef_error_any_0 TYPE c,
          ef_error_in_item_deletion_0 TYPE c,
          ef_error_in_pod_update_0 TYPE c,
          ef_error_in_interface_0 TYPE c,
          ef_error_in_goods_issue_0 TYPE c,
          ef_error_in_final_check_0 TYPE c,
          d_return   LIKE bapireturn1.
    Internal tables for BAPI Function Module
    data : i_cret like BAPIRETURN1 occurs 0 with header line,
           i_csucess like BAPIVBRKSUCcESS occurs 0 with header line,
           i_ret2 like bapiret2 ,
           flag type c,
           i_mesg like mesg occurs 0 with header line.
    Data Declaration for Invoice Creation
    DATA: VBSK_I     LIKE  VBSK.
    data: d_success  type  c.
    DATA: XKOMFK LIKE      KOMFK   OCCURS 0 WITH HEADER LINE,
          XKOMV  LIKE      KOMV    OCCURS 0 WITH HEADER LINE,
          XTHEAD LIKE      THEADVB OCCURS 0 WITH HEADER LINE,
          XVBFS  LIKE      VBFS    OCCURS 0 WITH HEADER LINE,
          XVBPA  LIKE      VBPAVB  OCCURS 0 WITH HEADER LINE,
          XVBRK  LIKE      VBRKVB  OCCURS 0 WITH HEADER LINE,
          XVBRP  LIKE      VBRPVB  OCCURS 0 WITH HEADER LINE,
          XVBSS  LIKE      VBSS    OCCURS 0 WITH HEADER LINE,
          XKOMFKGN LIKE    KOMFKGN OCCURS 0 WITH HEADER LINE.
    S E L E C T I O N  -  S C R E E N   ******************
    Selection-screen
    Selection-screen : begin of block blk with frame title text-001.
    parameters : p_vbeln like vbak-vbeln obligatory.
    selection-screen : end of block blk.
    A T -  S E L E C T I O N  - S C R E E N ***************
    Validation on Sales order
    at selection-screen on p_vbeln.
    Check the data on VBAK Table
      select single vbeln from vbak into vbak-vbeln
                                where vbeln = p_vbeln.
      if sy-subrc ne 0.
        message e006 with p_vbeln.
      endif.
    S T A R T  - O F - S E L E C T I O N *******************
    Start-of-selection.
      break sreddy.
    Get the Invoice Number corresponding Sales Order Number
      perform get_invoice.
    Step 1.
    Cancel the Invoice  - Transaction VF11
      perform cancel_invoice.
    Reverse the goods issue
      perform reverse_goodsissue.
    Get the Order and Delivery Items
      perform get_sales_deliv.
    Delivery Change
      perform Delivery_change.
    Create Invoice document
      perform invoice_create.
    E N D  -  O F -  S E L E C T I O N  *******************
    end-of-selection.
    if flag = 'X'.
    message i012 with p_vbeln.
    endif.
    *&      Form  get_invoice
          Get Invoice Number
    FORM get_invoice.
    Clear Variables
      clear : v_deliv,
              v_invoic,
              flag.
    Get the Delivery Number First
      select single vbeln from vbfa into v_deliv
                               where vbelv = p_vbeln
                               and   vbtyp_n = 'J'.
      if sy-subrc ne 0.
        message i004 with p_vbeln.
        stop.
      endif.
    Get the Invoice Number
      select single vbeln from vbfa into v_invoic
                               where vbelv = p_vbeln
                               and   vbtyp_n = 'M'.
      if sy-subrc ne 0.
        message i003 with p_vbeln.
        stop.
      endif.
    ENDFORM.                    " get_invoice
    *&      Form  cancel_invoice
          Cancel the Invoice
    FORM cancel_invoice.
      clear : i_ret2,
              i_cret,
              i_csucess.
      refresh : i_cret,
                i_csucess.
      CALL FUNCTION 'BAPI_BILLINGDOC_CANCEL1'
        EXPORTING
          BILLINGDOCUMENT       = v_invoic
      TESTRUN               =
      NO_COMMIT             =
      BILLINGDATE           =
        TABLES
          RETURN                = i_cret
          SUCCESS               = i_csucess
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
           EXPORTING
                WAIT   = space
           IMPORTING
                RETURN = i_ret2.
    read table i_cret with key type = 'E'.
      if sy-subrc ne 0.
        message i005 with v_invoic.
        stop.
      endif.
    ENDFORM.                    " cancel_invoice
    *&      Form  reverse_goodsissue
          Reverse the goods Issue
    FORM reverse_goodsissue.
    Local Variable
      data : lv_vbtyp like likp-vbtyp.
      clear : i_mesg,
              lv_vbtyp.
      refresh : i_mesg.
      select single vbtyp from likp into lv_vbtyp
                               where vbeln = v_deliv.
      CALL FUNCTION 'WS_REVERSE_GOODS_ISSUE'
        EXPORTING
          I_VBELN                         = v_deliv
          I_BUDAT                         = sy-datum
        I_COUNT                         =
        I_MBLNR                         =
        I_TCODE                         =
          I_VBTYP                         = lv_vbtyp
        TABLES
          T_MESG                          = i_mesg
       EXCEPTIONS
         ERROR_REVERSE_GOODS_ISSUE       = 1
         OTHERS                          = 2
      if sy-subrc ne 0.
        message i007 with v_deliv.
      endif.
    ENDFORM.                    " reverse_goodsissue
    *&      Form  get_sales_deliv
          Get the Sales order and Deliv Items
    FORM get_sales_deliv.
    Local Variables
      data : lv_kwmeng like vbap-kwmeng.
      clear : i_lips,
              i_vbap.
      refresh : i_lips,
                i_vbap.
    Select the data from LIPS
      select * from lips into table i_lips
                         where vbeln = v_deliv.
      if sy-subrc ne 0.
        message i008 with v_deliv.
        stop.
      endif.
      sort i_lips by vbeln posnr.
      Get the Sales order Item Data.
      select * from vbap into table i_vbap
                              where vbeln = p_vbeln.
      if sy-subrc ne 0.
        message i006 with p_vbeln.
        stop.
      endif.
      sort i_vbap by vbeln posnr.
    Compare delivery Item and Order Items
      loop at i_lips.
        clear lv_kwmeng.
        read table i_vbap with key posnr = i_lips-posnr.
        if sy-subrc eq 0.
          lv_kwmeng = i_vbap-kwmeng * 2.
          if lv_kwmeng >= i_lips-lfimg.
            i_lips-lfimg = i_vbap-kwmeng.
            modify i_lips.
          endif.
        endif.
      endloop.
    ENDFORM.                    " get_sales_deliv
    *&      Form  Delivery_change
          Delivery Update
    FORM Delivery_change.
      Clear : i_prot.
      refresh : i_prot.
    Delivery Update
      CALL FUNCTION 'LE_MOB_DELIVERY_UPDATE'
           EXPORTING
                do_commit                = 'X'
           TABLES
                t_delivery_items         = i_lips
                prot                     = i_prot
           EXCEPTIONS
                conversion_overflow      = 1
                essential_data_missing   = 2
                error                    = 3
                nothing_to_update        = 4
                lock_after_update_failed = 5
                error_in_delivery_update = 6
                OTHERS                   = 7.
      COMMIT WORK.
      IF sy-subrc <> 0.
        MESSAGE i009 with v_deliv.
      endif.
    Post Goods Issue
      CLEAR:    d_return,
                i_prot,
                l_vbeln,
                l_vbkok.
      REFRESH i_prot.
      CLEAR:  ef_error_in_item_deletion_0    ,
              ef_error_in_pod_update_0       ,
              ef_error_in_interface_0        ,
              ef_error_in_goods_issue_0      ,
              ef_error_in_final_check_0      .
    carry out goods issue
      l_vbeln          = v_deliv.
      l_vbkok-vbeln_vl = l_vbeln.
      l_vbkok-wabuc    = 'X'.
    carry out goods issue
      l_vbeln          = v_deliv.
      l_vbkok-vbeln_vl = l_vbeln.
      l_vbkok-wabuc    = 'X'.
    SET UPDATE TASK LOCAL.
      CALL FUNCTION 'WS_DELIVERY_UPDATE'
           EXPORTING
                vbkok_wa                    = l_vbkok
                synchron                    = 'X'
                no_messages_update          = ' '
                update_picking              = 'X'
                commit                      = 'X'
                delivery                    = l_vbeln
                nicht_sperren               = 'X'
                if_error_messages_send_0    = space
           IMPORTING
                ef_error_any_0              = ef_error_any_0
                ef_error_in_item_deletion_0 = ef_error_in_item_deletion_0
                ef_error_in_pod_update_0    = ef_error_in_pod_update_0
                ef_error_in_interface_0     = ef_error_in_interface_0
                ef_error_in_goods_issue_0   = ef_error_in_goods_issue_0
                ef_error_in_final_check_0   = ef_error_in_final_check_0
           TABLES
                prot                        = i_prot
           EXCEPTIONS
                error_message               = 1
                OTHERS                      = 2.
      if sy-subrc ne 0.
        message i010 with v_deliv.
      else.
        COMMIT WORK .
      endif.
    ENDFORM.                    " Delivery_change
    *&      Form  invoice_create
          Invoice Creation
    FORM invoice_create.
      refresh: XKOMFK, XKOMV,
               XTHEAD, XVBFS,
               XVBPA,  XVBRK,
               XVBRP,  XVBSS.
      clear  : XKOMFK, XKOMV,
               XTHEAD, XVBFS,
               XVBPA,  XVBRK,
               XVBRP,  XVBSS,
               VBSK_I.
      VBSK_I-SMART = 'F'.
      XKOMFK-VBELN =  v_deliv.
      XKOMFK-VBTYP = 'J'.
      APPEND XKOMFK.
      CALL FUNCTION 'RV_INVOICE_CREATE'
           EXPORTING
                VBSK_I       = VBSK_I
                WITH_POSTING = 'C'
           TABLES
                XKOMFK       = XKOMFK
                XKOMV        = XKOMV
                XTHEAD       = XTHEAD
                XVBFS        = XVBFS
                XVBPA        = XVBPA
                XVBRK        = XVBRK
                XVBRP        = XVBRP
                XVBSS        = XVBSS.
      if sy-subrc eq 0.
        COMMIT WORK.
       flag = 'X'.
      else.
      message i011 with p_vbeln.
      endif.
    ENDFORM.                    " invoice_create
    Reward Points if it is helpful
    Thanks
    Seshu

  • Need Sample code to upload the data to Application Server

    Hi ,
    I need to upload the data to application server.
    The output should be an XML file.
    Can anybody send me sample code for this.
    Reward points are assured.
    Best Regards
    Bhagat.

    may be this code wil help ,first to downjload the XML fine -
    1)
    REPORT  zhr_test2_tk.
    TYPE-POOLS: ixml.
    TYPES: BEGIN OF xml_line,
            data(256) TYPE x,
           END OF xml_line.
    DATA: l_ixml            TYPE REF TO if_ixml,
          l_streamfactory   TYPE REF TO if_ixml_stream_factory,
          l_ostream         TYPE REF TO if_ixml_ostream,
          l_renderer        TYPE REF TO if_ixml_renderer,
          l_document        TYPE REF TO if_ixml_document.
    DATA: l_element_position TYPE REF TO if_ixml_element,
          l_element_title    TYPE REF TO if_ixml_element,
           l_element_flight  TYPE REF TO if_ixml_element,
           l_element_from    TYPE REF TO if_ixml_element,
           l_element_to      TYPE REF TO if_ixml_element,
            l_element_dummy   TYPE REF TO if_ixml_element,
             l_value           TYPE string.
    DATA: l_xml_table       TYPE TABLE OF xml_line,
          l_xml_size        TYPE i,
          l_rc              TYPE i.
    DATA: lt_erec TYPE TABLE OF hrp5126,
          l_erec TYPE hrp5126.
    DATA: date(10),
          time(4),
          filepath TYPE string.
    CONSTANTS: filedir TYPE string VALUE 'C:\tmp\',
               filename TYPE string VALUE 'ZHR_test'.
    START-OF-SELECTION.
    fill internal table
      SELECT * FROM hrp5126 INTO TABLE lt_erec.
    Start filling xml DOM object from internal table lt_erec.
      LOOP AT lt_erec INTO l_erec.
    *Create the root node 'position'
        IF sy-tabix EQ 1.
        create an ixml factory
          l_ixml = cl_ixml=>create( ).
        create Document Object Model
          l_document = l_ixml->create_document( ).
       Fill root node with value 'position'
          l_element_position = l_document->create_simple_element(
                         name   = 'position'
                         parent = l_document ).
        ENDIF.
        IF sy-tabix GT 1.
        create element jobtitle as child of position
          l_value = l_erec-jobtitle.
          l_element_title = l_document->create_simple_element(
                             name   = 'job_title'
                             parent = l_element_position
                             value  = l_value ).
          l_value = l_erec-empl_start_date.
          l_element_dummy = l_document->create_simple_element(
                             name   = 'StartDate'
                             parent = l_element_title
                             value  = l_value ).
          l_value = l_erec-empl_end_date.
          l_element_dummy = l_document->create_simple_element(
                             name   = 'EndDate'
                             parent = l_element_title
                             value  = l_value ).
        ENDIF.
      ENDLOOP.
      IF sy-subrc NE 0.
        WRITE: 'No data in table hrp5125'.
      ENDIF.
    create a stream factory
      l_streamfactory = l_ixml->create_stream_factory( ).
    connect internal XML table to streamfactory
      l_ostream = l_streamfactory->create_ostream_itable(
                      table = l_xml_table ).
    render the document
      l_renderer = l_ixml->create_renderer( ostream  = l_ostream
                                            document = l_document ).
      l_rc = l_renderer->render( ).
    Get time and date
      WRITE sy-uzeit2(2) TO time2(2).
      WRITE sy-uzeit0(2) TO time0(2).
      WRITE sy-datum4(2) TO date0(2).
      WRITE sy-datum6(2) TO date2(2).
      WRITE sy-datum0(4) TO date4(4).
    *Build filename with date and time reference
    CONCATENATE filedir filename date time '.xml' INTO filepath.
    <i>* This is the code I hope to modify in order to save the xml structure on the application server, with a specified filepath.</i>
    <b>  OPEN DATASET filepath FOR OUTPUT IN BINARY MODE.
      LOOP AT lt_erec into l_erec.
        TRANSFER  l_erec TO filepath.
      ENDLOOP.
      CLOSE DATASET filepath.</b>
    save XML document
      l_xml_size = l_ostream->get_num_written_raw( ).
    *This is the code for download to local computer
    CALL METHOD cl_gui_frontend_services=>gui_download
       EXPORTING
         bin_filesize            = l_xml_size
         filename                = filepath
         filetype                = 'BIN'
       CHANGING
         data_tab                = l_xml_table
       EXCEPTIONS
         file_write_error        = 1
         no_batch                = 2
         gui_refuse_filetransfer = 3
         invalid_type            = 4
         no_authority            = 5
         unknown_error           = 6
         header_not_allowed      = 7
         separator_not_allowed   = 8
         filesize_not_allowed    = 9
         header_too_long         = 10
         dp_error_create         = 11
         dp_error_send           = 12
         dp_error_write          = 13
         unknown_dp_error        = 14
         access_denied           = 15
         dp_out_of_memory        = 16
         disk_full               = 17
         dp_timeout              = 18
         file_not_found          = 19
         dataprovider_exception  = 20
         control_flush_error     = 21
         OTHERS                  = 22.
    IF sy-subrc <> 0.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    2) uploading tht PC XML file to APPliaction server -
    DATA rec like QISRS_XML_LINE.
    OPEN DATASET filepath FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
    LOOP AT l_xml_table into rec.
    TRANSFER rec TO filepath.
    ENDLOOP.
    CLOSE DATASET filepath.

  • Sample code in Update Rule to restrict data selection?

    We used to restrict data selection in InfoPackage data selection, e.g., for company code range when loading data from a source system (e.g. EBP which is similar to R3), but somehow the company code range we set in InfoPackage data selection not working and we found actually it occurs on the source system side when running RSA3 on EBP side and input the company code range in RSA3 selection section, but still it extracts data beyond the company code range.  We don't understand why EBP data selection doesn't work, then we consider in update rule on BW to set the company code range.  We know in update rule, we can select Start Routine, formula, or routine to set the company code range.  But we would be appreciated if experts here can recommend which one is the most efficient to load data fast for data load performance reason and would be appreicated if you can let us know the sample code!
    Thanks in advance!

    hi Hari,
    I copy the whole code of the start routine below:
    PROGRAM UPDATE_ROUTINE.
    $$ begin of global - insert your declaration only below this line  -
    TABLES: ...
    Includes to update generic objects
    INCLUDE rsbctgn_top .
    INCLUDE rsbctgn_update_rules .
    INCLUDE rsbctbbp_generic_objects.
      The following section is prepared for you if you compound
      the business partner 0BPARTNER with the
      Source System 0BBP_SYS_BP or if you compound the organizational
      Unit 0ORGUNIT with the source System 0BBP_SYS_BP
    TYPE-POOLS: RRSV.
    Data: L_HLP_CHAVL_CMP       TYPE RSCHAVL.
    DATA:
           L_S_DEP       TYPE RRSV_S_DEP,
           L_T_DEP       TYPE RRSV_T_DEP.
      End of compound
    DATA: l_s_errorlog        TYPE rssm_s_errorlog_int,
          l_hlp_chavl         TYPE rschavl.
    $$ end of global - insert your declaration only before this line   -
    The follow definition is new in the BW3.x
    TYPES:
      BEGIN OF DATA_PACKAGE_STRUCTURE.
         INCLUDE STRUCTURE /BIC/CS0BBP_CONF_TD_1.
    TYPES:
         RECNO   LIKE sy-tabix,
      END OF DATA_PACKAGE_STRUCTURE.
    DATA:
      DATA_PACKAGE TYPE STANDARD TABLE OF DATA_PACKAGE_STRUCTURE
           WITH HEADER LINE
           WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
    FORM startup
      TABLES   MONITOR STRUCTURE RSMONITOR "user defined monitoring
               MONITOR_RECNO STRUCTURE RSMONITORS " monitoring with record n
               DATA_PACKAGE STRUCTURE DATA_PACKAGE
      USING    RECORD_ALL LIKE SY-TABIX
               SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
      CHANGING ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
    $$ begin of routine - insert your code only below this line        -
    fill the internal tables "MONITOR" and/or "MONITOR_RECNO",
    to make monitor entries
    delete data_package where 0comp_code < 'X300' OR 0comp_code > 'X6ZZ'.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    $$ end of routine - insert your code only before this line         -
    ENDFORM.

  • Need sample code in webdynpro for java

    Hi all
    actually i have one webdynpro form which is having multiple input elements. for example name,address,phoneno,price quantity and amount. and there is update button for that form.
    when i click the update button the multiplication of quantity and price value will be updated by in one input field which is part of the another webdynpro form is part of the same view.
    i want to update the input field in another form only when i change the value of either price or quantity otherwise the value of inputfield in another form should be same.
    now how do we retrieve the event of either price or quantity inputfield which only changes rather than changes of name or adreess.
    only when i modify the value of price or quantity in form and updated button then only the multiplication will be reflected in inputfield of another form.i dont want to reflect that inputfield of another form when i changes of other inputfields except price or quantity.
    please provide the sample code on the same...especially how to retrieve the event of that price or quantity in a form..
    Regards
    Suresh babu

    Hi Suresh,
    please post your issue to the Web Dynpro forum.
    Greetings,
    Carsten

  • Sun ejb tutorial compilation problem with sample code

    I have been trying to follow the ejb tutorial off of Sun's web site. However, I get the following problem when I try to compile the sample code.
    prompt>javac Demo.java
    works fine
    Prompt>javac DemoBean.java
    works fine
    Prompt>javac DemoHome.java
    DemoHome.java:23: cannot resolve symbol
    symbol : class Demo
    location: interface ejb.demo.DemoHome
    public Demo create() throws CreateException, RemoteException;
    ^
    1 error
    Prompt>
    Can anyone help me out as I have tried several books which conveniently skip the part about compiling errors.
    I noticed I don't have a CLASSPATH variable and then i created one with just '.' in it and that didn't work. any help would be appreciated as this is driving me crazy. Thanks.

    try to change the order of the exception.
    first RemoteException and then CreateException

  • Regarding bapi to issue PGI BAPI_OUTB_DELIVERY_CHANGE,sample code please

    Can you send me the sample code of this bapiBAPI_OUTB_DELIVERY_CHANGE ,if any one have used this.it's urgent please..

    Hi,
    BAPI_OUTB_DELIVERY_CHANGE - BAPI for Change to Outbound Delivery
    BAPI_INB_DELIVERY_SAVEREPLICA - Create Inbound Delivery
    RV_DELIVERY_CREATE - Create Delivery
    GN_DELIVERY_CREATE - Create an Outbound Delivery
    &#1050;&#1086;&#1076;:
    FORM xkomdlgn_fill USING p_open_qty LIKE ekpo-menge
                                           p_eindt LIKE eket-eindt
                                           p_licha LIKE eket-licha
                                           p_charg LIKE eket-charg
                                           p_uzeit LIKE eket-uzeit.
      STATICS: h_grkor LIKE lips-grkor,
      h_bsmng LIKE ekpo-menge.
      CLEAR t_xkomdlgn.
      CHECK t_ekpo-uptyp NE '5' " Lot
      AND t_ekpo-uptyp NE '6' " Display
      AND t_ekpo-uptyp NE '7' " VK-Set
      AND t_ekpo-uptyp NE 'H'. " GT-Stuckliste
      IF t_ekpo-uebpo IS INITIAL AND t_ekpo-upvor CA '1I'.
        CHECK 1 = 2.
      ENDIF.
      IF NOT ekko-lifnr IS INITIAL.
        CALL FUNCTION 'VENDOR_MASTER_DATA_SELECT_12'
          EXPORTING
            pi_lifnr       = ekko-lifnr
            pi_ekorg       = ekko-ekorg
          IMPORTING
            pe_lfm1        = lfm1
          EXCEPTIONS
            no_entry_found = 1
            OTHERS         = 2.
        t_xkomdlgn-vsbed = lfm1-vsbed.
      ELSE.
        CLEAR t_xkomdlgn-vsbed.
      ENDIF.
      t_xkomdlgn-adrnr_li = ekko-adrnr.
      t_xkomdlgn-lifnr = ekko-lifnr.
      t_xkomdlgn-inco1 = ekko-inco1.
      t_xkomdlgn-inco2 = ekko-inco2.
      t_xkomdlgn-exnum = ekko-exnum.
      t_xkomdlgn-bukrs_best = ekko-bukrs.
      t_xkomdlgn-matnr = t_ekpo-matnr.
      t_xkomdlgn-werks = t_ekpo-werks.
    *IF STORAGE LOCATION IS MISSING APPEND
    *FG01 As storage location
      IF t_ekpo-lgort IS INITIAL .
        t_xkomdlgn-lgort = 'FG01' .
      ELSE .
        t_xkomdlgn-lgort = t_ekpo-lgort.
      ENDIF.
      xkomdlgn-charg = ?
      T_XKOMDLGN-VRKME = T_EKPO-MEINS.
      t_xkomdlgn-meins = t_ekpo-lmein.
      t_xkomdlgn-umvkz = t_ekpo-umrez.
      t_xkomdlgn-umvkn = t_ekpo-umren.
      IF t_ekpo-matnr EQ space.
        t_xkomdlgn-meins = t_ekpo-meins.
        t_xkomdlgn-umvkz = 1.
        t_xkomdlgn-umvkn = 1.
      ENDIF.
      t_xkomdlgn-insmk = t_ekpo-insmk.
      t_xkomdlgn-kzfme = t_ekpo-kzfme.
      t_xkomdlgn-kzvbr = t_ekpo-kzvbr.
      t_xkomdlgn-lfimg = p_open_qty.
      t_xkomdlgn-lfdat = p_eindt.
      t_xkomdlgn-lfuhr = p_uzeit.
      xkomdlgn-vstel = ?
      XKOMDLGN-VKORG = ?
      xkomdlgn-vtweg = ?
      XKOMDLGN-SPART = ?
      t_xkomdlgn-traid = t_ekpo-traid."CARRIER CODE
      t_xkomdlgn-lifex = t_ekpo-lifex."External ID
      t_xkomdlgn-bolnr = t_ekpo-bolnr."Bill Of Lading
      t_xkomdlgn-xabln = t_ekpo-xabln."Goods Receipt/Issue Slip Number
      t_xkomdlgn-vgbel = t_ekpo-ebeln.
      t_xkomdlgn-vgpos = t_ekpo-ebelp.
      t_xkomdlgn-lfart = gf_dlv_type.
      t_xkomdlgn-vgtyp = 'V'.
      t_xkomdlgn-kzazu = 'X'.
      t_xkomdlgn-knttp = t_ekpo-knttp.
      t_xkomdlgn-sobkz = t_ekpo-sobkz.
      SELECT * FROM t163g WHERE bstae EQ t_ekpo-bstae
      AND ebtyp EQ gf_ebtyp.
        EXIT.
      ENDSELECT.
      IF sy-subrc = 0.
        prufen, ob lieferavis we-zuordnung hat (vorauss. fur we uber vl32)
        und wepos prufen
        if t163g-wezuo eq space or t_ekpo-wepos eq space.
        t_xkomdlgn-nowab = 'X'.
      ELSE.
        CLEAR t_xkomdlgn-nowab.
      ENDIF.
    ENDIF.
    IF t_ekpo-matnr IS INITIAL OR t_ekpo-pstyp = '6'.
      t_xkomdlgn-posar = 'B'.
    ENDIF.
    t_xkomdlgn-ematn = t_ekpo-ematn.
    t_xkomdlgn-mfrnr = t_ekpo-mfrnr.
    t_xkomdlgn-mfrpn = t_ekpo-mfrpn.
    t_xkomdlgn-emnfr = t_ekpo-emnfr.
    t_xkomdlgn-cuobj = t_ekpo-cuobj.
    t_xkomdlgn-uebto = t_ekpo-uebto.
    t_xkomdlgn-untto = t_ekpo-untto.
    t_xkomdlgn-uebtk = t_ekpo-uebtk.
    t_xkomdlgn-lichn = p_licha.
    t_xkomdlgn-charg = p_charg.
    t_xkomdlgn-bwtar = t_ekpo-bwtar.
    t_xkomdlgn-kdmat = t_ekpo-idnlf.
    t_xkomdlgn-arktx = t_ekpo-txz01.
    t_xkomdlgn-mfrgr = t_ekpo-mfrgr.
    t_xkomdlgn-gewei = t_ekpo-gewei.
    t_xkomdlgn-voleh = t_ekpo-voleh.
    t_xkomdlgn-ntgew = t_ekpo-ntgew * t_xkomdlgn-lfimg.
    t_xkomdlgn-brgew = t_ekpo-brgew * t_xkomdlgn-lfimg.
    t_xkomdlgn-volum = t_ekpo-volum * t_xkomdlgn-lfimg.
    t_xkomdlgn-ean11 = t_ekpo-ean11.
    t_xkomdlgn-podrel = t163l-podrel.
    t_xkomdlgn-aktnr = t_ekpo-aktnr.
    t_xkomdlgn-abeln = t_ekpo-abeln.
    t_xkomdlgn-abelp = t_ekpo-abelp.
    xkomdlgn-ltssf = only SORT criteria IN vl31n
    T_XKOMDLGN-AUREL = T_EKPO-AUREL.
    t_xkomdlgn-idnlf = t_ekpo-idnlf.
    t_xkomdlgn-matkl = t_ekpo-matkl.
    leergut-stuckliste ubernehmen
    clear t_xkomdlgn-grkor.
    CLEAR t_xkomdlgn-kmpmg.
    CLEAR t_xkomdlgn-uepos.
    CLEAR t_xkomdlgn-uepvw.                                     "549736
    IF t_ekpo-upvor CA '3X'.
      h_grkor = h_grkor + 1.
      t_xkomdlgn-grkor = h_grkor.
      h_bsmng = t_ekpo-menge.
    ENDIF.
    IF NOT t_ekpo-uebpo IS INITIAL AND
    t_ekpo-uptyp CA '3X'.
      t_xkomdlgn-uepvw = 'G'.                                   "549736
      t_xkomdlgn-uepos = t_ekpo-uebpo.
      t_xkomdlgn-grkor = h_grkor.
      IF h_bsmng NE 0.
        t_xkomdlgn-kmpmg = t_ekpo-menge / h_bsmng.
      ENDIF.
    ENDIF.
    IF t_ekpo-pstyp EQ '2'.
      t_xkomdlgn-sobkz = 'K'.
    ENDIF.
    kontierungsfelder
    if t_ekpo-sobkz eq 'E' or t_ekpo-sobkz eq 'Q'.
    CALL FUNCTION 'MMPUR_EKKN_READ_EBELN_EBELP'
      EXPORTING
        pi_ebeln             = t_ekpo-ebeln
        pi_ebelp             = t_ekpo-ebelp
        pi_bypassing_buffer  = pi_refresh_buffer
        =
      tables
        pto_ekkn_po          = xekkn
      EXCEPTIONS
        no_records_requested = 1
        OTHERS               = 2.
    IF sy-subrc EQ 0.
      READ TABLE xekkn INDEX 1.
      t_xkomdlgn-ps_psp_pnr = xekkn-ps_psp_pnr.
      t_xkomdlgn-vbelv = xekkn-vbeln.
      t_xkomdlgn-posnv = xekkn-vbelp.
    ENDIF.
    ENDIF.
    APPEND t_xkomdlgn.
    ENDFORM. "xkomdlgn_fill
    LOOP AT t_xkomdlgn.
    set default parameter
    t_xkomdlgn-vgtyp = 'V'.
    t_xkomdlgn-kzazu = 'X'.
    IF t_xkomdlgn-lfart IS INITIAL.
    t_xkomdlgn-lfart = 'EL'.
    ENDIF.
    MODIFY t_xkomdlgn.
    ENDLOOP.
    SELECT SINGLE * FROM tvsa WHERE smart = xvbsk-smart.
    IF sy-subrc 0.
    Error Handling To be Done
    Meldung ins Protokoll
    ENDIF.
    l_nrnr = tvsa-numki.
    CALL FUNCTION 'NUMBER_GET_NEXT'
    EXPORTING
    nr_range_nr = l_nrnr
    object      = 'RV_SAMMG'
    IMPORTING
    number      = xvbsk-sammg
    EXCEPTIONS
    OTHERS      = 1.
    IF sy-subrc 0.
    error hadling tbd
    meldung ins protokoll
    endif.
    CALL FUNCTION 'GN_DELIVERY_CREATE'
    EXPORTING
    no_commit = 'X'
    vbsk_i = xvbsk
    if_no_deque = 'X'
    IF_MASS_READ_MAT_SW = 'X'
    vbls_pos_rueck = 'X'
    TABLES
    xkomdlgn = t_xkomdlgn
    xvbfs = xvbfs
    xvbls = xvbls
    xxlips = xlips.
    get informatioin from ekpo table and fill T_xkomdlgn

  • Sample code in PBO and PAI

    Hi all,
    i created a new field in the customer master (xd03) screen with a button. if i click that button, it will display the next screen with the new field. now i need to write the code in PBO and PAI events in that screen to get the data from table and to change the already exiting data.
    can any body provide me the sample code wht to write in the PBO and PAI eventts.?
    thanks in advance.
    kp

    Hi,
    I think you find the answer but i still answered your question.
    You can use the function module 'DYNP_VALUES_READ' to read value you want and use the function module ' HELP_VALUES_GET_WITH_TABLE' to get the values from kna1 table.
    Good luck.

  • Sample code to find duplicated entries in internal table and mark them?

    We have one internal table called itab1 which contains the following fields:
    f1 (key field)
    f2 (non-key field)
    f3 (non-key field)
    The business scenario is f1, f2, and f3 are one to one relationship to each other, or in other word, f2 or f3 can't be duplicated with the the same values for different f1 (key field) records. We will move the check result of the duplication into another internal table itab2 which contains f1, f2, f3, f4, and f5 where f1, f2, and f3 are the same ones as in itab1, f4 will get the value "Yes" to mark duplicated for f2 (or "No" to mark non-duplicated), and f5 will get the value "Yes" to mark duplicated for f3 (or "No" to mark non-duplicated).
    We know that through the loop of itab1, the above logic can be done to fill in f4 and f5 value for each row with either "Yes" or "No".
    Just give an example of how itab2 will look like after the coding:
    f1----f2--f3--f4(f2 duplicated?)---f5(f3 duplicated?)
    A----01-X0YesNo--
    B----01-X1YesYes--
    C----02-X1NoYes--
    Could any ABAP expert here show us the sample code to generate itab2 in loop of itab1 to find the duplicated entries of f2 and f3 and then populated the corresponding row values for f4 and f5 with "Yes" or "No"? We will give you reward points!

    TYPES: BEGIN OF ty_1,
    f1,
    f2(2),
    f3(2),
    f4,
    f5,
    END OF ty_1.
    TYPES: BEGIN OF ty_2,
    type(2),
    value(2),
    END OF ty_2.
    DATA: itab1 TYPE STANDARD TABLE OF ty_1 WITH HEADER LINE,
          itab2 TYPE TABLE OF ty_2 WITH HEADER LINE.
    DATA: f2_c TYPE sy-tabix VALUE 0,
         f3_c TYPE sy-tabix VALUE 0,
         curr_f2 LIKE itab1-f2,
         curr_f3 LIKE itab1-f3.
    itab1-f1 = 'A'.
    itab1-f2 = '01'.
    itab1-f3 = 'X0'.
    APPEND itab1.
    itab1-f1 = 'B'.
    itab1-f2 = '01'.
    itab1-f3 = 'X1'.
    APPEND itab1.
    itab1-f1 = 'C'.
    itab1-f2 = '02'.
    itab1-f3 = 'X1'.
    APPEND itab1.
    SORT itab1 BY f1 f2 f3 AS TEXT.
    LOOP AT itab1.
      IF sy-tabix EQ 1.
        curr_f2 = itab1-f2.
        curr_f3 = itab1-f3.
      ENDIF.
      IF itab1-f2 NE curr_f2.
        f2_c = 0.
        curr_f2 = itab1-f2.
      ENDIF.
      IF itab1-f3 NE curr_f3.
        f3_c = 0.
        curr_f3 = itab1-f3.
      ENDIF.
      f2_c = f2_c + 1.
      f3_c = f3_c + 1.
      IF f2_c > 1.
        itab1-f4 = 'X'.
        MODIFY itab1.
        itab2-type = 'f2'.
        itab2-value = itab1-f2.
        APPEND itab2.
      ENDIF.
      IF f3_c > 1.
        itab1-f5 = 'X'.
        MODIFY itab1.
        itab2-type = 'f3'.
        itab2-value = itab1-f3.
        APPEND itab2.
      ENDIF.
    ENDLOOP.
    DELETE ADJACENT DUPLICATES FROM itab2.
    LOOP AT itab2.
      IF itab2-type = 'f2'.
        LOOP AT itab1 WHERE f2 = itab2-value AND f4 NE 'X'.
          itab1-f4 = 'X'.
          MODIFY itab1.
        ENDLOOP.
      ELSE.
        LOOP AT itab1 WHERE f3 = itab2-value AND f5 NE 'X'.
          itab1-f5 = 'X'.
          MODIFY itab1.
        ENDLOOP.
      ENDIF.
    ENDLOOP.
    Edited by: Ramiro Escamilla on Apr 5, 2008 1:45 AM
    changed the code, now should work

  • Sample Code in BADI for Open Hub Services

    Hi all,
            We have a requirement to extend(add few new fields and  populate them using BADI) for the target structure of Infospoke in Open hub services.
    I have 2 issues which are stopping us to proceed further.
           1.   I did this by just adding new fields in this change mode of target Structure (didn't used 'Append structure' as while saving and creating T.port request,its popping error like 'Structure not present in TRDIR).I am not able to assign this to any T.request,as of now I have saved it as Local object.How can I assign this to an request?is it possible?.
           2. After putting breakpoint in the BADI I don't see any data in the Importing table.I need some sample code in the BADI which should populate the New fields in the target structure.
    It will be great if anyone of you will give us any solution for the same.
    Thanks,
    Rahul.
    Edited by: Rahul Siddi on Oct 12, 2009 3:04 PM

    Hello Rahul,
    Find the code below with the steps to be implemented.
    Enter your infospoke in the edit mode.
    - On the Transformation tab set the indicator for the Infospoke with Transformation with BADI so that the infospoke is activated.
    - This will take you to the Addin implementation/BADI builder.
    - Enter the short text/description for the implementation. The implementation name is always the same as the technical name of the infospoke
    - The implementation of the BADI is always filter dependant.
    - In the properties tab of the infospoke enter your infospoke under the Filter specifications.
    If you do not specify an InfoSpoke under Filter Specifications, then this implementation is valid for all InfoSpokes. This means that this is called up for all InfoSpokes during the extraction.
    - Activate your class
    - From your interface tab page, double click on the Transofrm Method and you will arrive in the class builder page
    - Here you can enter the code
    - To do a look up of the master data you have to write a code similar to the one I've given below. This is just an example for looking up material master.
    IF FLT_VAL = 'Your infospoke'.
    T_DATA_IN] = I_T_DATA_IN[.
    Select zstd_cost from /bi0/pmaterial into table T_return
    For all entries in T_DATA_IN
    WHERE material = T_DATA_IN-material.
    ...Continue with your code.
    Append output from T_return to your output E_T_DATA_OUT
    - Activate your method. Return to the BAdI builder. Return to your InfoSpoke.
    Check if you missed any of these...
    Kris...

  • Assert error/hangs running the performance sample code

    Hi,
    I'm doing some work to understand how fast I can expect Berkeley DB to run and I found the 2006 white paper on [Performance Metrics and Benchmarks|http://www.oracle.com/technology/products/berkeley-db/pdf/berkeley-db-perf.pdf] so I downloaded the [sample code|http://www.oracle.com/technology/products/berkeley-db/files/perf.zip] and made a couple of fixes to make it run with 4.7.25 (shown at the end).
    When I run 'make test' it frequently hangs on the "Transactional Data Store (write, in-memory logging)" test under OS X 10.5.7 and under Debian lenny (kernel 2.6.26-1-amd64).
    If I rebuild BDB with --enable-diagnostic I get this assertion error.
    jmeredith@op:~/src/perf$ rm -rf TESTDIR ; ./t
    Using Berkeley DB 4.7.25 - ops: 1000000; keysize: 8; datasize: 32
    Data Store (read):
    elapsed time: 0.392573 seconds : 2.5473e+06 key/data pairs per sec
    Data Store (bulk read):
    elapsed time: 1.615233 seconds : 2.66339e+07 key/data pairs per sec
    Data Store (write):
    elapsed time: 0.629771 seconds : 1.58788e+06 key/data pairs per sec
    Transactional Data Store (read):
    elapsed time: 2.413665 seconds : 414308 key/data pairs per sec
    assert failure: ../dist/../txn/txn_region.c/451: "td->mvcc_ref > 0"
    [0x4f431d]
    [0x4f41a9]
    [0x44cdff]
    [0x4f2e1e]
    [0x42f0d3]
    [0x4f3faf]
    [0x4fddee]
    [0x4f8dde]
    [0x4d975c]
    [0x4c9991]
    [0x4e417d]
    [0x40137c]
    [0x40198e]
    [0x52613b]
    [0x4001b9]
    Aborted (core dumped)
    Here are the changes to get the code to build.
    --- perf/t.c 2006-06-28 17:15:47.000000000 -0600
    +++ perf-fixed/t.c 2009-07-06 09:44:43.000000000 -0600
    @@ -1,4 +1,5 @@
    #include <sys/types.h>
    +#include <sys/time.h>
    #include <stdio.h>
    #include <stdlib.h>
    @@ -38,7 +39,15 @@
    char *progname;
    -extern void __os_clock(DB_ENV *, u_int32_t *, u_int32_t *);
    +void
    +__os_clock(DB_ENV e, u_int32_t secs_ptr, u_int32_t *usecs_ptr)
    +{
    + struct timeval t;
    +
    + gettimeofday(&t, NULL);
    + *secs_ptr = (u_int32_t) t.tv_sec;
    + *usecs_ptr = (u_int32_t) t.tv_usec;
    +}
    void cleanup(void);
    void op_ds(u_int, int);
    @@ -364,7 +373,7 @@
    op_tds(ops, 0, 0);
    res("Transactional Data Store (read):", ops);
    - op_tds(ops, 1, DB_LOG_INMEMORY);
    + op_tds(ops, 1, DB_LOG_IN_MEMORY);
    res("Transactional Data Store (write, in-memory logging):", ops);
    op_tds(ops, 1, DB_TXN_NOSYNC);

    Hi,
    I reproduced your problem on Ubuntu 4.2.3 with db 4.7.25 and saw the same assert error as you. From the error message, the program asserts error/hangs at the "Transactional Data Store (write, in-memory logging)", that is calling op_tds() with DB_LOG_IN_MEMORY as the flags.
    The problem comes from your change on the sample code that the DB_LOG_IN_MEMORY is set with wrong API. The DB_LOG_IN_MEMORY should be set in DB_ENV->log_set_config(). Please refer to [DB_ENV->log_set_config|http://www.oracle.com/technology/documentation/berkeley-db/db/api_c/env_log_set_config.html] and its flag DB_LOG_IN_MEMORY.
    I change env's setting flags in op_tds() as follows. In this way, the error I saw is eliminated and the program works as expected.
    The original code is:
    PERF_CHECK(
            dbenv->set_flags(dbenv, DB_AUTO_COMMIT | txn_flags, 1) == 0);"
    {code}
    I change it to:
    {code}
    if (txn_flags == DB_LOG_IN_MEMORY) {
            PERF_CHECK(
               dbenv->log_set_config(dbenv, DB_LOG_IN_MEMORY, 1) == 0);
            txn_flags = 0;
    PERF_CHECK(
            dbenv->set_flags(dbenv, DB_AUTO_COMMIT | txn_flags, 1) == 0);
    {code}
    Please apply the change and l*et us know if it works on your machine.
    Regards,
    Emily Fu, Oracle Berkeley DB                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Maybe you are looking for

  • Contract value exceeding in Release order

    Hi  All, The target value of the value contract is 200,000 INR. After reaching to the 190,000 INR ( Making different Release order ) the user has made one more purchase order for this value contract with the value 50,000. The system hasnt given any w

  • Ipod touch 2G not recognized by itunes when using wifi

    I can connect to internet by wifi through network set up with Linksys. iPod recognized by network, Norton, and set as Full Trust. Windows Firewall turned off. iTunes does not show connection to ipod with wifi in iTunes. Tried everything on Apple webp

  • Displaying a Text vertically in report output

    Hi All, We have a requirement to display a field vertically in the XML Report output. Can anyone please help me with the same. Regards, Shruti

  • Java SDK for RoboSapien RS Media

    I have heard that there was a Java SDK for RoboSapien RS Media. I talked to a Customer Support Rep at WowWee and they said that the current Java SDK would work in it. If not that I can obtain the right one from Sun? But I can't seem to find where I c

  • HeuristicMixedException

              We are using WebLogic 6.1 and Oracle 8.1.7 database on a Solaris Box. I have a           client program accessing an EJB. This EJB is mapped to a VIEW in the database.           Because of some restrictions we have to use a DBLINK for this