How can I handle function pointer in Java?

Is there any class/methods which can be used to implement function pointers in java.? If yes pliz, help me to get in.

The java equivalent of function pointers is the one-instance class, as used to pass handlers to swing components, for example. Often an anonymous class is used.
Put your function signature in an interface, and pass an object that implements that interface:
public Class1 {
  public interface CallBack {
    void myMethod(String arg1);
  CallBack callb;
  public Class1(CallBack callb) {
   this.callb = callb;
  callb.myMethod("A string");
class2 {
   first = new Class1(new Class1.CallBack() {
     public void myMethod(String arg1) {
       ... do something ...

Similar Messages

  • How can I handle runtime errors in Java

    Please some one tell me what are runtime errors and How can I handle them using java code
    This is important
    Thanks in Advance
    Chowdary AK

    The java equivalent of function pointers is the one-instance class, as used to pass handlers to swing components, for example. Often an anonymous class is used.
    Put your function signature in an interface, and pass an object that implements that interface:
    public Class1 {
      public interface CallBack {
        void myMethod(String arg1);
      CallBack callb;
      public Class1(CallBack callb) {
       this.callb = callb;
      callb.myMethod("A string");
    class2 {
       first = new Class1(new Class1.CallBack() {
         public void myMethod(String arg1) {
           ... do something ...

  • How can I using functions implicit in dll file in java code ?

    How can I using functions implicit in dll file in java code ?
    I'm developing a program that interfacing with fingerprint hardware.
    I have the finger print already, and I have to the SDK that have all functions for managing this fingerprint.
    These SDK functions are represented in dll files.
    I want to know how can I use these functions in java code .
    I looked on this link of sun forums :
    http://forum.java.sun.com/thread.jspa?threadID=305171&messageID=1215613
    but I don't Understand the meaning of native code.
    Thanks for help.

    please please please please please please please please help me:
    After reading a lot of articles, tutorials, and overviews about JNI (Java Native Interface)
    I found that these steps
    1.     Develop the Java code
    2.     Compile the Java code to a class file
    3.     Generate the header file
    4.     Implement the native method
    5.     Create the shared library or DLL
    6.     Run the Java program
    Is the common steps in JNI development
    The most powerful link was
    http://java.sun.com/docs/books/jni/html/start.html
    and
    http://www.netbeans.org/kb/55/beginning-jni-part2.html
    and the pdf oh this link
    http://www.ibm.com/developerworks/edu/j-dw-javajni-i.html requiring IBM registration to download it.
    But I have already the DLL, and want to the stright forward way to use its functions by java code only.
    I don not to write any C++ code .
    Is this possible???????????????????????????????
    The name of these dll is �zkemsdk.dll�
    It developed by ZKSOFTWARE company for managing a finger print �NP1500A�of
    http://www.napcogulfsecurity.com/finger_print.asp
    thanks for help

  • How can I set a point size for staticTexts

    Hi everyone
    How can I set a point size for staticTexts?
        staticTexts.add({staticLabel:"Please select a tedious job"});
    thanks
    Teetan

    Thank you Vandy
    Thank you pixxxel schubser
    And thank you Peter Kahrel
    But Ho can call function for this script?
    //======================================================================
    Thank you Vandy
    Thank you pixxxel schubser
    And thank you Peter Kahrel
    But Ho can call function for this script?
    //======================================================================
    var stringList = [  
    "01.  digit at end: superscript",
    "02.  digit at beginning: superscript",
    "03.  notes  applied to italic (table only)",
    "04.  Initial Cap+ markup",
    "05.  Small Cap + markup",
    "06.  del [ ] + markup",
    "07.  add an EM at beginning",
    var win = new Window("dialog","Tedious Jobs_(\"TDJs\")");  
    this.windowRef = win;  
    win.grp = win.add ("group", undefined);  
    win.grp.alignChildren = "top";  
    win.grp.margins = 5;  
    win.grp2 = win.grp.add ("group", undefined);  
    win.grp2.orientation = "Column";  
    win.grp2.alignChildren = "left";  
    win.grp3 = win.grp.add ("group", undefined);  
    win.grp3.orientation = "Column";  
    win.grp3.alignChildren = "fill";  
    win.grp2.Txt1 = win.grp2.add ("statictext", undefined, "Please select a tedious job");  
    win.grp2.Txt1.indent = 0;  
    win.grp2.Ddl1 = win.grp2.add ("dropdownlist", undefined, stringList);  
    win.grp2.Ddl1.selection = 0;  
    win.grp2.sTxt1 = win.grp2.add ("statictext", undefined, "________________________________________");  
    win.grp2.sTxt3 = win.grp2.add ("statictext", undefined, "Be careful and pay attention in what you selected.");  
    win.grp2.sTxt3.graphics.font = ScriptUI.newFont ("Arial", "Regular", 10);  
    win.quitBtn = win.grp3.add("button", undefined, "Ok");  
    win.cancelBtn = win.grp3.add("button", undefined, "Cancel");  
    win.defaultElement = win.quitBtn;  
    win.cancelElement = win.cancelBtn;  
    win.quitBtn.onClick = function() {  
    win.close();  
      if (w.show() == 1) { 
                    var mRes = mStringList.selection.text;
                    mSelection = mStringList.selection.index;
                    app.insertLabel( "mDialog", mSelection.join() );    // to store dropDownList positions (as a string "," delimited)
                    return mRes;
            } else  {  exit();  } 
    app.doScript('main()', ScriptLanguage.JAVASCRIPT, undefined, UndoModes.FAST_ENTIRE_SCRIPT, "TDJs"); 
    function main(){
    var myObject;
    var myCheckSelection = false;
    if(app.documents.length > 0){
      if(app.selection.length > 0){
       switch(app.selection[0].constructor.name){
        case "InsertionPoint":
        case "Character":
        case "Word":
        case "TextStyleRange":
        case "Line":
        case "Paragraph":
        case "TextColumn":
        case "Text":
        case "Cell":
        case "Column":
        case "Row":
        case "Table":
      mySelected = app.insertLabel( "mDialog", String(mySelection.selectedIndex) );     //     to remember selection’s set 
      if(app.selection && app.selection[0].hasOwnProperty ("tedious_works") );
          tedious_works(); 
    else{
      alert("Wrong selection. Please try again.");
    function tedious_works() {  
      app.findGrepPreferences = app.changeGrepPreferences = null; 
      switch (mySelection.selectedIndex){ 
           case 1: {
       app.findGrepPreferences.findWhat = "^\\d";
       app.changeGrepPreferences.position = 1936749411;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
                break; 
           case 2:{
       app.findGrepPreferences.findWhat = "(?i)\\(note.+\\)$";
       app.changeGrepPreferences.appliedCharacterStyle = "Italic";
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "(附[註注].+)$";
       app.changeGrepPreferences.appliedCharacterStyle = "Italic";
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
           break; 
           case 3:{
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<a";
       app.changeGrepPreferences.changeTo = "A";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<b";
       app.changeGrepPreferences.changeTo = "B";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<c";
       app.changeGrepPreferences.changeTo = "C";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<d";
       app.changeGrepPreferences.changeTo = "D";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<e";
       app.changeGrepPreferences.changeTo = "E";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<f";
       app.changeGrepPreferences.changeTo = "F";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<g";
       app.changeGrepPreferences.changeTo = "G";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<h";
       app.changeGrepPreferences.changeTo = "H";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<i";
       app.changeGrepPreferences.changeTo = "I";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<j";
       app.changeGrepPreferences.changeTo = "J";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<k";
       app.changeGrepPreferences.changeTo = "K";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<l";
       app.changeGrepPreferences.changeTo = "L";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<m";
       app.changeGrepPreferences.changeTo = "M";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<n";
       app.changeGrepPreferences.changeTo = "N";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<o";
       app.changeGrepPreferences.changeTo = "O";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<p";
       app.changeGrepPreferences.changeTo = "P";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<q";
       app.changeGrepPreferences.changeTo = "Q";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<r";
       app.changeGrepPreferences.changeTo = "R";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<(?<!’)s";
       app.changeGrepPreferences.changeTo = "S";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<t";
       app.changeGrepPreferences.changeTo = "T";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<u";
       app.changeGrepPreferences.changeTo = "U";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<v";
       app.changeGrepPreferences.changeTo = "V";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<w";
       app.changeGrepPreferences.changeTo = "W";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<x";
       app.changeGrepPreferences.changeTo = "X";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<y";
       app.changeGrepPreferences.changeTo = "Y";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<z";
       app.changeGrepPreferences.changeTo = "Z";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
           break; 
           case 4:{
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<A";
       app.changeGrepPreferences.changeTo = "a";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<B";
       app.changeGrepPreferences.changeTo = "b";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<C";
       app.changeGrepPreferences.changeTo = "c";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<D";
       app.changeGrepPreferences.changeTo = "d";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<E";
       app.changeGrepPreferences.changeTo = "e";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<F";
       app.changeGrepPreferences.changeTo = "f";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<G";
       app.changeGrepPreferences.changeTo = "g";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<H";
       app.changeGrepPreferences.changeTo = "h";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<I";
       app.changeGrepPreferences.changeTo = "i";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<J";
       app.changeGrepPreferences.changeTo = "j";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<K";
       app.changeGrepPreferences.changeTo = "k";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<L";
       app.changeGrepPreferences.changeTo = "l";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<M";
       app.changeGrepPreferences.changeTo = "m";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<N";
       app.changeGrepPreferences.changeTo = "n";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences.findWhat = "\\<O";
       app.changeGrepPreferences.changeTo = "o";
       app.changeGrepPreferences.underline = true;
       app.selection[0].changeGrep();
       app.findGrepPreferences = app.changeGrepPreferences = null;
       app.findGrepPreferences = app.changeGrepPreferences = null;

  • How can i execute Spaces API in java main class?

    Hi
    I am able to execute Spaces API through portal application. However if i try to execute it in java main class, its throwing an exception
    "SEVERE: java.io.FileNotFoundException: .\config\jps-config.xml (The system cannot find the path specified)"
    oracle.wsm.common.sdk.WSMException: WSM-00145 : Keystore location or path can not be null or empty; it must be configured through JPS configuration or policy configuration override.
    How can i set this path, so that i can execute Spaces API from java main class.
    Need this main class to configure in cron job, to schedule a task.
    Regards
    Raj

    Hi Daniel
    Currently i have implemented create functionality in my portal application using Spaces API, which is working fine. Now the requirement is, i need to implement a "Cron Job" to schedule a task, which will execute to create space(for example once in a week). Cron job will execute only the main method. So I have created java main class, in which I have used Spaces API to perform create space operation. Then it was giving exception.
    Later I understood the reason, as I am executing the Space API with a simple JSE client, its failing since a simple java program has no idea of default-keystore.jks, jps-config.xml, Security Policy. Hence i have included those details in main class. Now I am getting new error,
    SEVERE: WSM-06303 The method "registerListener" was not called with required permission "oracle.wsm.policyaccess"
    For your reference i have attached the code below, please help. How can i use Spaces API in java main method(i mean public static void main(String[] args) by giving all required information.
        public static void main(String[] args) throws InstantiationException,
                                                      GroupSpaceWSException,
                                                      SpacesException {
            Class2 class2 = new Class2();
            GroupSpaceWSContext context = new GroupSpaceWSContext();
            FactoryFinder.init(null);
            context.setEndPoint("http://10.161.226.30/webcenter/SpacesWebService");
            context.setSamlIssuerName("www.oracle.com");
            context.setRecipientKeyAlias("orakey");
            Properties systemProps = System.getProperties();
            systemProps.put("java.security.policy","oracle/wss11_saml_or_username_token_with_message_protection_client_policy");
            systemProps.put("javax.net.ssl.trustStore","C:\\Oracle\\Middleware11.1.7\\wlserver_10.3\\server\\lib\\cacerts.jks");
    systemProps.put("oracle.security.jps.config","C:\\Oracle\\Middleware11.1.7\\user_projects\\domains\\workspace\\system11.1.1.7.40.64.93\\DefaultDomain\\config\\fmwconfig\\jps-config.xml");
            systemProps.put("javax.net.ssl.keyStore",C:\\Oracle\\Middleware11.1.7\\user_projects\\domains\\workspace\\system11.1.1.7.40.64.93\\DefaultDomain\\config\\fmwconfig\\consumer.jks");
            systemProps.put("javax.net.ssl.keyStorePassword", "Test12");
            System.setProperties(systemProps);
            GroupSpaceWSClient groupSpaceWSClient;
            try {
                groupSpaceWSClient = new GroupSpaceWSClient(context);
                System.out.println("URL: " +
                                   groupSpaceWSClient.getWebCenterSpacesURL());
                //delete the Space
                List<String> groupSpaces = groupSpaceWSClient.getGroupSpaces(null);
                System.out.println("GroupSpaces:: " + groupSpaces.size());
            } catch (Exception e) {
    Regards
    Raj

  • How can we handle multiple applications in session method

    how can we handle multiple applications in .. session method.
    can any body reply me.
    thanks

    Hari,
    hi Check out this sample code to use session method
    REPORT  ztest_report
    NO STANDARD PAGE HEADING
                            LINE-SIZE 255
                            MESSAGE-ID ZRASH.
                    Internal Table Declarations                          *
    *--Internal Table for Data Uploading.
    DATA : BEGIN OF IT_FFCUST OCCURS 0,
             KUNNR(10),
             BUKRS(4),
             KTOKD(4),
             ANRED(15),
             NAME1(35),
             SORTL(10),
             STRAS(35),
             ORT01(35),
             PSTLZ(10),
             LAND1(3),
             SPRAS(2),
             AKONT(10),
           END OF IT_FFCUST.
    *--Internal Table to Store Error Records.
    DATA : BEGIN OF IT_ERRCUST OCCURS 0,
             KUNNR(10),
             EMSG(255),
           END OF IT_ERRCUST.
    *--Internal Table to Store Successful Records.
    DATA : BEGIN OF IT_SUCCUST OCCURS 0,
             KUNNR(10),
             SMSG(255),
           END OF IT_SUCCUST.
    *--Internal Table for Storing the BDC data.
    DATA : IT_CUSTBDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    *--Internal Table for storing the messages.
    DATA : IT_CUSTMSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA : V_FLAG1(1) VALUE ' ',
    "Flag used for opening session.
           V_TLINES LIKE SY-TABIX,
           "For storing total records processed.
           V_ELINES LIKE SY-TABIX,
           "For storing the no of error records.
           V_SLINES LIKE SY-TABIX.
           "For storing the no of success records.
             Selection screen                                            *
    SELECTION-SCREEN BEGIN OF BLOCK B1.
    PARAMETERS : V_FNAME LIKE RLGRAP-FILENAME,
                 V_SESNAM  LIKE RLGRAP-FILENAME.
    SELECTION-SCREEN END OF BLOCK B1.
             Start-of-selection                                          *
    START-OF-SELECTION.
    *-- Form to upload flatfile data into the internal table.
      PERFORM FORM_UPLOADFF.
           TOP-OF-PAGE                                                   *
    TOP-OF-PAGE.
      WRITE:/ 'Details of the error and success records for the transaction'
      ULINE.
      SKIP.
             End of Selection                                            *
    END-OF-SELECTION.
    *-- Form to Generate a BDC from the Uploaded Internal table
      PERFORM FORM_BDCGENERATE.
    *--To write the totals and the session name.
      PERFORM FORM_WRITEOP.
    *&      Form  form_uploadff
        Form to upload flatfile data into the internal table.
    FORM FORM_UPLOADFF .
    *--Variable to change the type of the parameter file name.
      DATA : LV_FILE TYPE STRING.
      LV_FILE = V_FNAME.
    *--Function to upload the flat file to the internal table.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME                      =  LV_FILE
        FILETYPE                      = 'ASC'
          HAS_FIELD_SEPARATOR           = 'X'
        HEADER_LENGTH                 = 0
        READ_BY_LINE                  = 'X'
        DAT_MODE                      = ' '
      IMPORTING
        FILELENGTH                    =
        HEADER                        =
        TABLES
          DATA_TAB                      = IT_FFCUST
        EXCEPTIONS
          FILE_OPEN_ERROR               = 1
          FILE_READ_ERROR               = 2
          NO_BATCH                      = 3
          GUI_REFUSE_FILETRANSFER       = 4
          INVALID_TYPE                  = 5
          NO_AUTHORITY                  = 6
          UNKNOWN_ERROR                 = 7
          BAD_DATA_FORMAT               = 8
          HEADER_NOT_ALLOWED            = 9
          SEPARATOR_NOT_ALLOWED         = 10
          HEADER_TOO_LONG               = 11
          UNKNOWN_DP_ERROR              = 12
          ACCESS_DENIED                 = 13
          DP_OUT_OF_MEMORY              = 14
          DISK_FULL                     = 15
          DP_TIMEOUT                    = 16
          OTHERS                        = 17
      IF SY-SUBRC = 0.
    *--Deleting the headings from the internal table.
        DELETE IT_FFCUST INDEX 1.
    *--Getting the total number of records uploaded.
        DESCRIBE TABLE IT_FFCUST LINES V_TLINES.
      ENDIF.
    ENDFORM.                    " form_uploadff
    *&      Form  Form_bdcgenerate
        Form to Generate a BDC from the Uploaded Internal table
    FORM FORM_BDCGENERATE .
    *--Generating the BDC table for the fields of the internal table.
      LOOP AT IT_FFCUST.
        PERFORM POPULATEBDC USING :
                                    'X' 'SAPMF02D' '0105',
                                    ' ' 'BDC_OKCODE'  '/00' ,
                                    ' ' 'RF02D-KUNNR' IT_FFCUST-KUNNR,
                                    ' ' 'RF02D-BUKRS' IT_FFCUST-BUKRS,
                                    ' ' 'RF02D-KTOKD' IT_FFCUST-KTOKD,
                                    'X' 'SAPMF02D' '0110' ,
                                    ' ' 'BDC_OKCODE'  '/00',
                                    ' ' 'KNA1-ANRED'  IT_FFCUST-ANRED,
                                    ' ' 'KNA1-NAME1' IT_FFCUST-NAME1,
                                    ' ' 'KNA1-SORTL'  IT_FFCUST-SORTL,
                                    ' ' 'KNA1-STRAS' IT_FFCUST-STRAS,
                                    ' ' 'KNA1-ORT01' IT_FFCUST-ORT01,
                                    ' ' 'KNA1-PSTLZ' IT_FFCUST-PSTLZ,
                                    ' ' 'KNA1-LAND1' IT_FFCUST-LAND1,
                                    ' ' 'KNA1-SPRAS' IT_FFCUST-SPRAS,
                                    'X' 'SAPMFO2D' '0120',     
                                    ' ' 'BDC_OKCODE'  '/00',
                                    'X' 'SAPMF02D' '0125',     
                                    ' ' 'BDC_OKCODE'  '/00',
                                    'X' 'SAPMF02D' '0130',     
                                    ' ' 'BDC_OKCODE'  '=ENTR',
                                    'X' 'SAPMF02D' '0340',     
                                    ' ' 'BDC_OKCODE'  '=ENTR',
                                    'X' 'SAPMF02D' '0360',
                                    ' ' 'BDC_OKCODE'  '=ENTR',
                                    'X' 'SAPMF02D' '0210',     
                                    ' ' 'KNB1-AKONT'  IT_FFCUST-AKONT,
                                    ' ' 'BDC_OKCODE'  '/00',
                                    'X' 'SAPMF02D' '0215',
                                    ' ' 'BDC_OKCODE'  '/00',
                                    'X' 'SAPMF02D' '0220',     
                                    ' ' 'BDC_OKCODE'  '/00',
                                    'X' 'SAPMF02D' '0230',     
                                    ' ' 'BDC_OKCODE'  '=UPDA'.
    *--Calling the transaction 'fd01'.
        CALL TRANSACTION 'FD01' USING IT_CUSTBDC MODE 'N' UPDATE 'S'
        MESSAGES INTO IT_CUSTMSG.
        IF SY-SUBRC <> 0.
    *--Populating the error records internal table.
          IT_ERRCUST-KUNNR = IT_FFCUST-KUNNR.
          APPEND IT_ERRCUST.
          CLEAR IT_ERRCUST.
    *--Opening a session if there is an error record.
          IF V_FLAG1 = ' '.
            PERFORM FORM_OPENSESSION.
            V_FLAG1 = 'X'.
          ENDIF.
    *--Inserting the error records into already open session.
          IF V_FLAG1 = 'X'.
            PERFORM FORM_INSERT.
          ENDIF.
    *--Populating the Success records internal table.
        ELSE.
          IT_SUCCUST-KUNNR = IT_FFCUST-KUNNR.
          APPEND IT_SUCCUST.
          CLEAR IT_SUCCUST.
        ENDIF.
    *--Displaying the messages.
        IF NOT IT_CUSTMSG[] IS INITIAL.
          PERFORM FORM_FORMATMSG.
        ENDIF.
    *--Clearing the message and bdc tables.
        CLEAR : IT_CUSTBDC[],IT_CUSTMSG[].
      ENDLOOP.
    *--Getting the total no of error records.
      DESCRIBE TABLE IT_ERRCUST LINES V_ELINES.
    *--Getting the total no of successful records.
      DESCRIBE TABLE IT_SUCCUST LINES V_SLINES.
    *--Closing the session only if it is open.
      IF V_FLAG1 = 'X'.
        PERFORM FORM_CLOSESESS.
      ENDIF.
    ENDFORM.                    " Form_bdcgenerate
    *&      Form  populatebdc
          FOrm to Populate the BDC table.
    FORM POPULATEBDC  USING    VALUE(P_0178)
                               VALUE(P_0179)
                               VALUE(P_0180).
      IF P_0178 = 'X'.
        IT_CUSTBDC-PROGRAM = P_0179.
        IT_CUSTBDC-DYNPRO = P_0180.
        IT_CUSTBDC-DYNBEGIN = 'X'.
      ELSE.
        IT_CUSTBDC-FNAM = P_0179.
        IT_CUSTBDC-FVAL = P_0180.
      ENDIF.
      APPEND IT_CUSTBDC.
      CLEAR IT_CUSTBDC.
    ENDFORM.                    " populatebdc
    *&      Form  FORM_OPENSESSION
          Form to Open a session.
    FORM FORM_OPENSESSION .
    *--Variable to convert the given session name into reqd type.
      DATA : LV_SESNAM(12).
      LV_SESNAM = V_SESNAM.
    *--Opening a session.
      CALL FUNCTION 'BDC_OPEN_GROUP'
       EXPORTING
         CLIENT                    = SY-MANDT
         GROUP                     = LV_SESNAM
         HOLDDATE                  = '20040805'
         KEEP                      = 'X'
         USER                      = SY-UNAME
         PROG                      = SY-CPROG
    IMPORTING
       QID                       =
       EXCEPTIONS
         CLIENT_INVALID            = 1
         DESTINATION_INVALID       = 2
         GROUP_INVALID             = 3
         GROUP_IS_LOCKED           = 4
         HOLDDATE_INVALID          = 5
         INTERNAL_ERROR            = 6
         QUEUE_ERROR               = 7
         RUNNING                   = 8
         SYSTEM_LOCK_ERROR         = 9
         USER_INVALID              = 10
         OTHERS                    = 11
      IF SY-SUBRC <> 0.
        WRITE :/ 'Session not open'.
      ENDIF.
    ENDFORM.                    " FORM_OPENSESSION
    *&      Form  FORM_INSERT
          fORM TO INSERT ERROR RECOED INTO A SESSION.
    FORM FORM_INSERT .
    *--Inserting the record into session.
      CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          TCODE                  = 'FD01'
        POST_LOCAL             = NOVBLOCAL
        PRINTING               = NOPRINT
        SIMUBATCH              = ' '
        CTUPARAMS              = ' '
        TABLES
          DYNPROTAB              = IT_CUSTBDC
        EXCEPTIONS
          INTERNAL_ERROR         = 1
          NOT_OPEN               = 2
          QUEUE_ERROR            = 3
          TCODE_INVALID          = 4
          PRINTING_INVALID       = 5
          POSTING_INVALID        = 6
          OTHERS                 = 7
      IF SY-SUBRC <> 0.
        WRITE :/ 'Unable to insert the record'.
      ENDIF.
    ENDFORM.                    " FORM_INSERT
    *&      Form  FORM_CLOSESESS
          Form to Close the Open Session.
    FORM FORM_CLOSESESS .
      CALL FUNCTION 'BDC_CLOSE_GROUP'
        EXCEPTIONS
          NOT_OPEN    = 1
          QUEUE_ERROR = 2
          OTHERS      = 3.
      IF SY-SUBRC <> 0.
      ENDIF.
    ENDFORM.                    " FORM_CLOSESESS
    *&      Form  FORM_FORMATMSG
          Form to format messages.
    FORM FORM_FORMATMSG .
    *--Var to store the formatted msg.
      DATA : LV_MSG(255).
      CALL FUNCTION 'FORMAT_MESSAGE'
        EXPORTING
          ID        = SY-MSGID
          LANG      = SY-LANGU
          NO        = SY-MSGNO
          V1        = SY-MSGV1
          V2        = SY-MSGV2
          V3        = SY-MSGV3
          V4        = SY-MSGV4
        IMPORTING
          MSG       = LV_MSG
        EXCEPTIONS
          NOT_FOUND = 1
          OTHERS    = 2.
      IF SY-SUBRC = 0.
        WRITE :/ LV_MSG.
      ENDIF.
      ULINE.
    ENDFORM.                    " FORM_FORMATMSG
    *&      Form  form_writeop
          To write the totals and the session name.
    FORM FORM_WRITEOP .
      WRITE :/ 'Total Records Uploaded :',V_TLINES,
               / 'No of Error Records :',V_ELINES,
               / 'No of Success Records :',V_SLINES,
               / 'Name of the Session :',V_SESNAM.
      ULINE.
    ENDFORM.                    " form_writeop
    Don't forget to reward if useful..

  • In call transaction how can we handle error records.

    hai..tellme how can we handle error records in call transaction..we can get error records into one flatfile ok...then we have to execute the same bdc program with dat flat file (error records) once again...is it wright ..

    Hi,
    check this program u will get idea
    seee this prog. its will help u .
    copy and run this prog.
    TYPES : BEGIN OF t_disp ,
    vendorno(9),
    compcc(13),
    purchorg(14),
    accgroup(15),
    title(7),
    name(5),
    country(8),
    ordcurr(14),
    END OF t_disp.
    TYPES : BEGIN OF t_err,
    msgtyp LIKE bdcmsgcoll-msgtyp,
    l_mstring(250),
    END OF t_err.
    DATA: i_disp TYPE STANDARD TABLE OF t_disp,
    wa_disp TYPE t_disp,
    i_err TYPE STANDARD TABLE OF t_err,
    wa_err TYPE t_err.
    data definition
    Batchinputdata of single transaction
    DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
    messages of call transaction
    DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
    error session opened (' ' or 'X')
    DATA: e_group_opened.
    message texts
    TABLES: t100.
    PARAMETER : p_file1 LIKE ibipparms-path,
    p_cmode LIKE ctu_params-dismode DEFAULT 'N'.
    "A: show all dynpros
    "E: show dynpro on error only
    "N: do not display dynpro
    *selction screen.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
    CALL FUNCTION 'F4_FILENAME'
    EXPORTING
    program_name = syst-cprog
    dynpro_number = syst-dynnr
    IMPORTING
    file_name = p_file1.
    AT SELECTION-SCREEN ON p_file1.
    IF p_file1 IS INITIAL.
    MESSAGE 'FILE IS NOT FOUND' TYPE 'E'.
    ENDIF.
    START-OF-SELECTION.
    PERFORM f_disp_file1.
    END-OF-SELECTION.
    PERFORM f_disp_errs.
    *& Form F_DISP_FILE1
    text
    --> p1 text
    <-- p2 text
    FORM f_disp_file1 .
    DATA: l_filename1 TYPE string.
    MOVE p_file1 TO l_filename1.
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = l_filename1
    filetype = 'ASC'
    has_field_separator = 'X'
    HEADER_LENGTH = 0
    READ_BY_LINE = 'X'
    DAT_MODE = ' '
    CODEPAGE = ' '
    IGNORE_CERR = ABAP_TRUE
    REPLACEMENT = '#'
    CHECK_BOM = ' '
    IMPORTING
    FILELENGTH =
    HEADER =
    TABLES
    data_tab = i_disp
    EXCEPTIONS
    FILE_OPEN_ERROR = 1
    FILE_READ_ERROR = 2
    NO_BATCH = 3
    GUI_REFUSE_FILETRANSFER = 4
    INVALID_TYPE = 5
    NO_AUTHORITY = 6
    UNKNOWN_ERROR = 7
    BAD_DATA_FORMAT = 8
    HEADER_NOT_ALLOWED = 9
    SEPARATOR_NOT_ALLOWED = 10
    HEADER_TOO_LONG = 11
    UNKNOWN_DP_ERROR = 12
    ACCESS_DENIED = 13
    DP_OUT_OF_MEMORY = 14
    DISK_FULL = 15
    DP_TIMEOUT = 16
    OTHERS = 17
    IF sy-subrc 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    *? prepare BDC data
    DELETE i_disp INDEX 1.
    LOOP AT i_disp INTO wa_disp .
    PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'RF02K-KTOKK'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '/00'.
    PERFORM bdc_field USING 'RF02K-LIFNR'
    wa_disp-vendorno.
    'ztest_1'.
    PERFORM bdc_field USING 'RF02K-BUKRS'
    wa_disp-compcc.
    '0001'.
    PERFORM bdc_field USING 'RF02K-EKORG'
    wa_disp-purchorg.
    '0001'.
    PERFORM bdc_field USING 'RF02K-KTOKK'
    wa_disp-accgroup.
    '0001'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFA1-SPRAS'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=VW'.
    PERFORM bdc_field USING 'LFA1-ANRED'
    wa_disp-title.
    'Mr.'.
    PERFORM bdc_field USING 'LFA1-NAME1'
    wa_disp-name.
    'test name'.
    PERFORM bdc_field USING 'LFA1-SORTL'
    'TEST NAME'.
    PERFORM bdc_field USING 'LFA1-LAND1'
    wa_disp-country.
    'in'.
    PERFORM bdc_field USING 'LFA1-SPRAS'
    'en'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFA1-KUNNR'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=VW'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFBK-BANKS(01)'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=VW'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFB1-AKONT'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=VW'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFB1-ZTERM'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=VW'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0220'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFB5-MAHNA'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=VW'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0310'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFM1-WAERS'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=UPDA'.
    PERFORM bdc_field USING 'LFM1-WAERS'
    wa_disp-ordcurr.
    'inr'.
    PERFORM bdc_transaction USING 'XK01'.
    WRITE:/ WA_DISP-VendorNo,
    WA_DISP-COMPCC,
    WA_DISP-PURCHORG,
    WA_DISP-ACCGROUP,
    WA_DISP-title,
    WA_DISP-name,
    WA_DISP-country,
    WA_DISP-ORDCURR.
    CLEAR: wa_disp.
    REFRESH bdcdata.
    ENDLOOP.
    ENDFORM. " F_DISP_FILE1
    Start new screen *
    FORM bdc_dynpro USING program dynpro.
    CLEAR bdcdata.
    bdcdata-program = program.
    bdcdata-dynpro = dynpro.
    bdcdata-dynbegin = 'X'.
    APPEND bdcdata.
    ENDFORM. "BDC_DYNPRO
    Insert field *
    FORM bdc_field USING fnam fval.
    IF FVAL NODATA.
    CLEAR bdcdata.
    bdcdata-fnam = fnam.
    bdcdata-fval = fval.
    APPEND bdcdata.
    ENDIF.
    ENDFORM. "BDC_FIELD
    *& Form bdc_transaction
    text
    -->P_0322 text
    FORM bdc_transaction USING tcode.
    DATA: l_mstring(480),
    l_subrc LIKE sy-subrc.
    REFRESH messtab.
    CALL TRANSACTION tcode USING bdcdata
    MODE p_cmode
    UPDATE 'L'
    MESSAGES INTO messtab.
    l_subrc = sy-subrc.
    IF SMALLLOG 'X'.
    WRITE: / 'CALL_TRANSACTION',
    TCODE,
    'returncode:'(I05),
    L_SUBRC,
    'RECORD:',
    SY-INDEX.
    LOOP AT messtab.
    SELECT SINGLE * FROM t100 WHERE sprsl = messtab-msgspra
    AND arbgb = messtab-msgid
    AND msgnr = messtab-msgnr.
    IF sy-subrc = 0.
    l_mstring = t100-text.
    IF l_mstring CS '&1'.
    REPLACE '&1' WITH messtab-msgv1 INTO l_mstring.
    REPLACE '&2' WITH messtab-msgv2 INTO l_mstring.
    REPLACE '&3' WITH messtab-msgv3 INTO l_mstring.
    REPLACE '&4' WITH messtab-msgv4 INTO l_mstring.
    ELSE.
    REPLACE '&' WITH messtab-msgv1 INTO l_mstring.
    REPLACE '&' WITH messtab-msgv2 INTO l_mstring.
    REPLACE '&' WITH messtab-msgv3 INTO l_mstring.
    REPLACE '&' WITH messtab-msgv4 INTO l_mstring.
    ENDIF.
    CONDENSE l_mstring.
    WRITE: / messtab-msgtyp, l_mstring(250).
    *? Send this errors to err internal table
    wa_err-msgtyp = messtab-msgtyp.
    wa_err-l_mstring = l_mstring.
    APPEND wa_err TO i_err.
    ELSE.
    WRITE: / messtab.
    ENDIF.
    CLEAR: messtab, wa_err.
    ENDLOOP.
    SKIP.
    ENDIF.
    ENDFORM. " bdc_transaction
    *& Form f_disp_errs
    text
    --> p1 text
    <-- p2 text
    FORM f_disp_errs .
    SORT i_err BY msgtyp.
    LOOP AT i_err INTO wa_err.
    AT FIRST.
    WRITE : / text-002.
    ULINE.
    ENDAT.
    AT NEW msgtyp.
    IF wa_err-msgtyp = 'S'.
    WRITE : / text-003.
    ULINE.
    ELSEIF wa_err-msgtyp = 'E'.
    WRITE : / text-001.
    ULINE.
    ENDIF.
    ENDAT.
    WRITE : / wa_err-msgtyp, wa_err-l_mstring.
    CLEAR wa_err.
    ENDLOOP.
    ENDFORM. " f_disp_errs
    Regards

  • How can we handle table control in BDC?

    Hi,
    How can we handle table control in BDC?
    regards
    eswar

    hi,
    check this example:
    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    ex:
    *& Report  ZSR_BDC_TBCTRL
    REPORT  ZSR_BDC_TBCTRL
            NO STANDARD PAGE HEADING LINE-SIZE 255.
    TABLES : RF02K,LFA1,LFBK.
    DATA : BEGIN OF IT_VEN OCCURS 0,
          LIFNR LIKE RF02K-LIFNR,
          KTOKK LIKE RF02K-KTOKK,
          NAME1 LIKE LFA1-NAME1,
          SORTL LIKE LFA1-SORTL,
          LAND1 LIKE LFA1-LAND1,
          SPRAS LIKE LFA1-SPRAS,
          BANKS(6) TYPE C,
          BANKL(17) TYPE C,
          BANKN(19) TYPE C,
          END OF IT_VEN.
    DATA : BEGIN OF BANKS OCCURS 0,
           BANKS LIKE LFBK-BANKS,
           END OF BANKS,
           BEGIN OF BANKL OCCURS 0,
           BANKL LIKE LFBK-BANKL,
           END OF BANKL,
           BEGIN OF BANKN OCCURS 0,
           BANKN LIKE LFBK-BANKN,
           END OF BANKN.
    DATA : FLD(20) TYPE C,
           CNT(2) TYPE N.
    DATA : BDCTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    INCLUDE BDCRECX1.
    START-OF-SELECTION.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = 'Z:\sr.TXT'
       FILETYPE                      = 'ASC'
       HAS_FIELD_SEPARATOR           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
      TABLES
        DATA_TAB                      = IT_VEN
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    PERFORM OPEN_GROUP.
    LOOP AT IT_VEN.
        REFRESH BDCDATA.
        REFRESH : BANKS,BANKL,BANKN..
        SPLIT IT_VEN-BANKS AT ',' INTO TABLE BANKS.
        SPLIT IT_VEN-BANKL AT ',' INTO TABLE BANKL.
        SPLIT IT_VEN-BANKN AT ',' INTO TABLE BANKN.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0100'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'RF02K-KTOKK'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_FIELD       USING 'RF02K-LIFNR'
                                  IT_VEN-LIFNR.
    PERFORM BDC_FIELD       USING 'RF02K-KTOKK'
                                  IT_VEN-KTOKK.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0110'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'LFA1-SPRAS'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_FIELD       USING 'LFA1-NAME1'
                                  IT_VEN-NAME1.
    PERFORM BDC_FIELD       USING 'LFA1-SORTL'
                                  IT_VEN-SORTL.
    PERFORM BDC_FIELD       USING 'LFA1-LAND1'
                                  IT_VEN-LAND1.
    PERFORM BDC_FIELD       USING 'LFA1-SPRAS'
                                  IT_VEN-SPRAS.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0120'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'LFA1-KUNNR'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'LFBK-BANKN(02)'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=ENTR'.
    *perform bdc_field       using 'LFBK-BANKS(01)'
                                 'DE'.
    *perform bdc_field       using 'LFBK-BANKS(02)'
                                 'DE'.
    *perform bdc_field       using 'LFBK-BANKL(01)'
                                 '10020030'.
    *perform bdc_field       using 'LFBK-BANKL(02)'
                                 '67270003'.
    *perform bdc_field       using 'LFBK-BANKN(01)'
                                 '12345'.
    *perform bdc_field       using 'LFBK-BANKN(02)'
                                 '66666'.
    MOVE 1 TO CNT.
        LOOP AT BANKS.
          CONCATENATE 'LFBK-BANKS(' CNT ') ' INTO FLD.
          PERFORM BDC_FIELD USING FLD BANKS-BANKS.
          CNT = CNT + 1.
        ENDLOOP.
        MOVE 1 TO CNT.
        LOOP AT BANKL.
          CONCATENATE 'LFBK-BANKL(' CNT ') ' INTO FLD.
          PERFORM BDC_FIELD USING FLD BANKL-BANKL.
          CNT = CNT + 1.
        ENDLOOP.
        MOVE 1 TO CNT.
        LOOP AT BANKN.
          CONCATENATE 'LFBK-BANKN(' CNT ') ' INTO FLD.
          PERFORM BDC_FIELD USING FLD BANKN-BANKN.
          CNT = CNT + 1.
        ENDLOOP.
    PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'LFBK-BANKS(01)'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=ENTR'.
    PERFORM BDC_DYNPRO      USING 'SAPLSPO1' '0300'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=YES'.
    PERFORM BDC_TRANSACTION USING 'XK01'.
    ENDLOOP.
    PERFORM CLOSE_GROUP.

  • Can any one tell me How can I handle internal error in smartforn

    Hi,
    How can I handle internal error in smartforn, what type of problem can be.
    Regards
    chandra

    Look at [SAP Smart Forms (BC-SRV-SCR)|http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVSCRSF/BCSRVSCRSF.pdf]
    Runtime Errors
    Each Smart Form can trigger a number of exceptions during its execution. To limit this number of exceptions, you can bundle the occurring errors in error classes and store them in an error log in the composer. For each error, you store an internal error number and (if possible) a message from table T100 (work area, message number, message text and parameters) in addition to the error class. To each error class, you assign an exception, which means that if the recognized error teminates the form processing, the system triggers exactly this exception. When an exception occurs, the caller of the Smart Form can use predefined function modules to read the error log and then decide which reaction is appropriate in the respective error context.
    Possible exceptions for the generated function module are:
    - FORMATTING_ERROR
    - INTERNAL_ ERROR
    - SEND_ERROR
    - USER_CANCELED
    In addition, you can define your own exceptions.
    If an error (or a warning) occurs, the system internally fills an error table. The application can now read this table as soon as the function module for the form is processed to the end. To read the table that contains all errors and warnings that occurred, call function module SSF_READ_ERRORS. The table has structure SSFERROR. The fields in the table are the number of the document within the job, the form name, an error number, a message class, a message type, a message number and four additional message variables. If processing is terminated, the application can dynamically display a message. The error numbers are defined in the include SSF_ERROR.
    If you want to trigger your own exception in the free coding of the Smart Form, you can use one of the following methods:
    - Use the macro user_exception <exception>, which triggers the exception <exception> and fills the above tables. After the termination additional system variables for the error (symsgno, sy-msgtyp, and so on) do not contain the values required for your own exception.
    - If you want to access the system variables sy-msgno, sy-msgtyp, and so on for your exception directly, proceed as follows: Call function module SSF_MESSAGE and trigger your exception yourself using the RAISE statement.
    The system field &SFSY-EXCEPTION& contains the name of the triggered exception.
    Then debug your program.
    Regards

  • How can I convert page points into document points??

    Hello,
    How can I convert page points into document points? any API?
    I have found 2 APIs
    AIDocumentViewSuite::ArtworkPointToViewPoint( ) and
    AIDocumentViewSuite::ViewPointToArtworkPoint( )
    but I dont know what is view point and art work point.
    I think artwork point = page points and view points = document points. am I correct ???

    What do you mean by 'document points'? Do you mean document units? Like centimeters or inches? If that, there's no API to do (well, kind of in AIUser.h, but that gives you back a string with a unit suffix). Frankly, its pretty easy to just figure out the conversion values for each type of ruler unit -- there are only five or so you need -- and then write a dinky function that takes a value in one or the other, looks up the current document unit and uses that to convert the value (one function for each way). You just need to figure out everything in terms of points (since pixels == points) -- in that regard, it probably helps to know that 72 pt == 1 inch. From that you can figure out pointer-per-inch|centimeter|millimeter|pica.

  • How can i handle with event, when i close a file (notped or word,excel..)??

    How can i handle with event, when i close a file (notped or excel...). i want do something..
    Edited by: Legy on Apr 21, 2008 11:45 PM

    of course notepad.exe is closed again as soon as the operating system has completed the process of loading its content into memory...
    And no "event" is fired when that happens, except maybe internal to the process that loaded the application to indicate that it's been loaded successfully and can now be executed.
    But there's no way your Java process is ever going to receive that notification.

  • How can i handle BLOB.

    How can i handle BLOB data.

    Thank you for the input, but it wasn't so usefull. I found a soluten to get the get a blob from the database.
    <snip>
    MimeBodyPart mbp = new MimeBodyPart();
    // Create the Multipart to be added the parts to
         Multipart mp = new MimeMultipart();
    while( rs.next()) {
    BLOB Attachment     = rs.getBLOB("att");
    String FileName     = rs.getString("nam");
    String FileType     = rs.getString("ext");
    // Create and fill the second message part (Attachements)     
         MimeBodyPart mbp1 = new MimeBodyPart();
         String type = (FileType != null ? FileType : dftMime);
         String fileName = (FileName != null ? FileName : dftName);
         mbp1.setDisposition(Part.ATTACHMENT);
         mbp1.setFileName(fileName);
         mbp1.setDataHandler(new
         DataHandler(new BLOBDataSource(Attachment, type)));
         mbp1.setHeader( "Content-Transfer-Encoding", "base64" );
         mp.addBodyPart(mbp1);
    Now i get the following stacktrace:
    A send error is occured. Exit program.null
    javax.mail.internet.ParseException
    at javax.mail.internet.ContentType.<init>(ContentType.java:89)
    at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1249)
    at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1001)
    at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:333)
    at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1255)
    at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2012)
    at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1980)
    at javax.mail.Transport.send(Transport.java:97)
    at miag.app.mail.SendMail.send(SendMail.java:150)
    at miag.app.mail.SendMail.main(SendMail.java:37)
    The email will not be sent.
    Thank you
    Rene

  • Trackpad options are turned off now no response.how can the trackpad functions be re-instated?                               except cursor mvement.

    trackpad options have been turned off and trackpad only responds to cursor movement and not to click.how can the rackpad functions e re-instated?

    What version of Mac OS X?
    In OS 10.9, you can set how the track pad responds.
    Go to Apple menu / System Preferences / Trackpad.
    Click the tabs (point & Click, etc.) to change the settings.

  • How can I change the points I got this year buying at Ishops?

    How can I change the points I got this year buying at Ishops?

    Use G Toolbox => Shell => Taskbar, you can set Taskbar to Auto Hide, Always on top, or both.
    Reqire XP.
    G Toolbox => Shell =>Hide SysCtrls can return taskbar handle.
    Message Edited by zou on 10-23-2006 01:40 PM
    George Zou
    http://webspace.webring.com/people/og/gtoolbox

  • How can I build Instalation Program for java applet?

    I want to build on line internet game based on java applet.
    Uset must instull the game to his computer.And this program mast Connect to the server when user enter
    to this application.Not from explorer,but from my application,like when i enter to ICQ.
    My questions:
    How can i build instalation program in java?
    How can i connect to the server when user enter into my game not from explorer but from game?
    Thanks,Maya.

    Hi Maya
    First of all an Applet does not have to be "installed" as you would with a normal application. The browser handles the install and execution of the applet.
    Check out this URL for more about applets:
    http://web2.java.sun.com/docs/books/tutorial/applet/index.html
    On the subject client/server pairs - see:
    http://web2.java.sun.com/docs/books/tutorial/networking/sockets/index.html
    If you decide to make the game an application instead check out Sun's WebStart - under the products section.
    That's about all the help I can give you.
    Programming a game is a complicated subject - I am doing one too:
    http://hjem.get2net.dk/mhjembaek/armageddon/
    Kind reg,
    Hjembaek

Maybe you are looking for

  • HT1420 Authorized/No longer Authorized error message

    I have authorized my computer but whenever I sync I get an error message that says "This computer is no longer authorized for apps installed on your iphone." It then asks me to authorize or it will delete apps from my phone.  When I click "Authorize"

  • Can 'Audio Calendar' run in background on 6300?

    Hi everyone - I'm a newbie here so forgive me if I get things wrong. I have a 6300 and I can run 'Audio Calendar' by Maracus Software fine. It has a feature which plays back audio alerts at user assigned date and time. All this works fine when the so

  • Offline Processing Changes

    Just noticed that the link Collecting credit card details for offline processing in this document is broken. http://helpx.adobe.com/business-catalyst/kb/offline-processing-changes---post.html

  • 11g fileadapter - read operation triggered by file

    Hi, I have practiced with the new file adapter feature to trigger a read operation by an endfile. The read operation that is triggered by a file is useful in specific scenario's, but I have a question about it. There is no correlation between a file

  • Trouble playing videos/download pics to fb using internet explorer

    For some reason I'm currently unable to play youtube videos or upload pics to FB without being prompted to download Adobe Flash....which I've done 100 times and it hasn't resolved the issue.  I've uninstalled /reinstalled.......done everything I've r