Problem in Vl01n T-code Upload program

Hi Experts,
   I  have a issue in BDC for T-code  'VL01N'  (Creating Outbound Delivery with Sales Order Reference) ..
I Have to perform page down in table control for line items and batch Split for the same line items.
First  It  will  select  the first  line item and then i will press batch split button at the button in the same screen, It will take to next screen that is also table control with batch split here also i should
perform page down option i may have 500 to 600 batch for single line item.
In the same way i may have 500 line items for the same order so i have to select line item and then perform
batch split option then come back and Select the next line item in the same order.
I am facing problem in page scrolling in line item wise.
Is there  any BAPI  Code  for the same Please forward me . i am working on ECC 5.0 version.
Thank you .
Regards.
Ravi.
Message was edited by:
        Ravi reddy

Hi Sam,
      Thanks for the reply sam.
      I have written BDC program its working fine but in some scenarios this not working .
Example:-
For a Sales order 10000. there are 24 line items assume that.
I can view 13 line items in the table control . After processing 13 line items i perform
page down then the remaining 11 line items should process but its picking 13 line items in the table control. the first two line items are already process one.
this is the problem i am facing .
regards.
Ravi.

Similar Messages

  • Transaction Code - Upload Program

    Dear All,
    Please help.
    Like wise we can assign a T code to a BDC program for using it as upload program.
    Please tell me can a T code be assigned to an upload program done through LSMW
    & how...???
    Regards
    Dhananjay

    Hello,
    you can create a templete for uploading the data using LSMW and create as a program and assign a transaction code to it. But all you require is ABAP help.
    Prase

  • Conversion problem in condition records upload program (BDC tcode: XK15)

    Hello everyone,
        I have downloaded few records from table A017 using key KUMNH (cond no), by the std program RVBTCI01 , i used three structures BRG00, BKOND1, BKOND2 and BKOND3 to download the records.
    into a file (.txt) on the server.
      now i uploaded the same file using the standard prg RV14BTCI (after recording the the transaction XK15 using BDC).
    the amount field in bkond structure BKOND2-KEBTR is giving the conversion error while uploading ,
    it is giving ERROR when the session is processed in sm35
    it is not accepting the decimal places while uploading the amount field.
    when amount field is made integer its working fine..
    this is happening with fields MXWRT and GKWRT too .... (infact in all places where the decimals are used)
    any pointers to solve this ???

    hi avinash,
      the data elt used for KONP-KBETR in table is
                   KBETR_KOND ( which is of type CURR , length 11 and 2 decimal)
      the data elt used for BKOND2-KBETR in structure is
                   BKBETR ( which is of type CHAR , length 15 and 0 decimal)
    so dat i can download len(11)point(1)decimal(2)  total 15 digits in the structure of 15 char
    now the problem comes when i am uploading the same back into the table KONP-KEBTR
    which is of type CURR as mentioned above
    plz help to solve dis

  • How to Upload Program Source Code

    Hello,
    i have a program which downloads the source code into text files.
    I need to create all these into another server.
    so i need a program to upload these programs.
    Any idea how to it? Thanks in advance.
    Thanks&Regards,
    Sayanna Damerla

    Try this custom code:
    Upload and Download ABAP Source Code
    Source Code Listing
    Report: ZKBPROGS             *
    Function   : Up/Download ABAP reports complete with texts            *
            - this program does not update TRDIR with the                *
              TRDIR entries that are in the program uploaded.  Instead,  *
              current users stats are used.          *
            - this program allows selection of reports from a list or    *
              a single report can be tuped in and uploaded               *
            - this program also updates TADIR so that a development class*
              is assigned to the program             *
            - this program checks to see if the program already has a    *
              TRDIR entry, and if it does, warns the user                *
            - this program will save/restore the program documenation too*
    REPORT ZKBPROGS
           NO STANDARD PAGE HEADING
           LINE-SIZE  255.
    Declare Database Objects     *
    tables:
      DOKIL,
      TRDIR.
    Constants*
    CONSTANTS:
      MC_TRDIR_IDENTIFIER(72)  TYPE C VALUE '%&%& RDIR',
      MC_REPORT_IDENTIFIER(72) TYPE C VALUE '%&%& REPO',
      MC_TEXT_IDENTIFIER(72)   TYPE C VALUE '%&%& TEXP',
      MC_THEAD_IDENTIFIER(72)  TYPE C VALUE '%&%& HEAD',
      MC_DOC_IDENTIFIER(72)    TYPE C VALUE '%&%& DOKL',
      MC_TRDIR_SHORT(4)        TYPE C VALUE 'RDIR',
      MC_REPORT_SHORT(4)       TYPE C VALUE 'REPO',
      MC_TEXT_SHORT(4)         TYPE C VALUE 'TEXP',
      MC_THEAD_SHORT(4)        TYPE C VALUE 'HEAD',
      MC_DOC_SHORT(4)          TYPE C VALUE 'DOKP'.
    Declare Module level data structures             *
    DATA: BEGIN OF MTAB_PROGRAM_SOURCE OCCURS 0,
            LINE(72) TYPE C,
          END OF MTAB_PROGRAM_SOURCE.
    DATA: MTAB_PROGRAM_TRDIR LIKE TRDIR OCCURS 0 WITH HEADER LINE.
    DATA: MTAB_PROGRAM_TEXTS LIKE TEXTPOOL OCCURS 0 WITH HEADER LINE.
    DATA: MSTR_THEAD LIKE THEAD.
    DATA: BEGIN OF MTAB_PROGRAM_FILE OCCURS 0,
            LINE(275) TYPE C,
          END OF MTAB_PROGRAM_FILE.
    DATA: BEGIN OF MTAB_DIRECTORY OCCURS 0,
            NAME LIKE TRDIR-NAME,
            DESC(72) TYPE C,
            SAVENAME LIKE RLGRAP-FILENAME,
          END OF MTAB_DIRECTORY.
    DATA: BEGIN OF MTAB_PROGRAM_DOCUMENTATION OCCURS 0,
            LINE(255) TYPE C,
          END OF MTAB_PROGRAM_DOCUMENTATION.
    Selection Screen             *
    *-- Options for upload/download of programs
    SELECTION-SCREEN BEGIN OF BLOCK FRM_OPTIONS WITH FRAME TITLE TEXT-UDL.
    PARAMETERS:
      RB_DOWN RADIOBUTTON GROUP UDL DEFAULT 'X'.       " Download reports
    SELECTION-SCREEN BEGIN OF BLOCK FRM_TRDIR WITH FRAME TITLE TEXT-DIR.
    SELECT-OPTIONS:
      S_NAME  FOR TRDIR-NAME,              " Program Name
      S_SUBC  FOR TRDIR-SUBC               " Program Type
              DEFAULT 'F' OPTION EQ SIGN E," Exclude Functions by default
      S_CNAM  FOR TRDIR-CNAM               " Created by
              DEFAULT SY-UNAME,
      S_UNAM  FOR TRDIR-UNAM,              " Last Changed by
      S_CDAT  FOR TRDIR-CDAT,              " Creation date
      S_UDAT  FOR TRDIR-UDAT.              " Last update date
    SELECTION-SCREEN END OF BLOCK FRM_TRDIR.
    *-- Options for uploading programs
    PARAMETERS:
      RB_UP   RADIOBUTTON GROUP UDL.       " Upload reports
    SELECTION-SCREEN BEGIN OF BLOCK FRM_UPLOAD WITH FRAME TITLE TEXT-UPL.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(29) TEXT-SNG.
    PARAMETERS:
      RB_FILE RADIOBUTTON GROUP HOW DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 33(42) TEXT-FNA.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS:
      RB_LIST RADIOBUTTON GROUP HOW.
    SELECTION-SCREEN END OF BLOCK FRM_UPLOAD.
    SELECTION-SCREEN END OF BLOCK FRM_OPTIONS.
    *-- Options for up/downloading programs
    SELECTION-SCREEN BEGIN OF BLOCK FRM_FILEN WITH FRAME TITLE TEXT-FIL.
    PARAMETERS:
      RB_DOS  RADIOBUTTON GROUP FIL DEFAULT 'X', " Save to local
      RB_UNIX RADIOBUTTON GROUP FIL,       " Save to UNIX
      P_PATH  LIKE RLGRAP-FILENAME         " Path to save files to
            DEFAULT 'c:\temp\'.
    SELECTION-SCREEN END OF BLOCK FRM_FILEN.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_NAME-LOW.
      CALL FUNCTION 'F4_PROGRAM'
           EXPORTING
                OBJECT             = S_NAME-LOW
                SUPPRESS_SELECTION = 'X'
           IMPORTING
                RESULT             = S_NAME-LOW
           EXCEPTIONS
                OTHERS             = 1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_NAME-HIGH.
      CALL FUNCTION 'F4_PROGRAM'
           EXPORTING
                OBJECT             = S_NAME-HIGH
                SUPPRESS_SELECTION = 'X'
           IMPORTING
                RESULT             = S_NAME-HIGH
           EXCEPTIONS
                OTHERS             = 1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_UNAM-LOW.
      PERFORM GET_NAME USING 'S_UNAM-LOW'
                    CHANGING S_UNAM-LOW.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_UNAM-HIGH.
      PERFORM GET_NAME USING 'S_UNAM-HIGH'
                    CHANGING S_UNAM-HIGH.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_CNAM-LOW.
      PERFORM GET_NAME USING 'S_CNAM-LOW'
                    CHANGING S_CNAM-LOW.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_CNAM-HIGH.
      PERFORM GET_NAME USING 'S_CNAM-HIGH'
                    CHANGING S_CNAM-HIGH.
    TOP-OF-PAGE.
      IF RB_LIST = 'X'.
        FORMAT COLOR COL_HEADING.
        NEW-LINE.
        WRITE: AT 3 TEXT-H01,
               AT 15 TEXT-H03.
        FORMAT COLOR OFF.
      ENDIF.
    AT LINE-SELECTION.
      CHECK RB_LIST = 'X'.                 " only do in list mode
      READ LINE SY-CUROW FIELD VALUE MTAB_DIRECTORY-SAVENAME.
    *-- Read file into an internal table
      PERFORM READ_REPORT_FROM_DISK TABLES MTAB_PROGRAM_FILE
                USING  MTAB_DIRECTORY-SAVENAME.
    *-- Split table into TADIR entry, report lines, and report text
      PERFORM SPLIT_INCOMING_FILE TABLES MTAB_PROGRAM_FILE
                     MTAB_PROGRAM_SOURCE
                     MTAB_PROGRAM_TEXTS
                     MTAB_PROGRAM_DOCUMENTATION
            CHANGING TRDIR
                     MSTR_THEAD.
    *-- Save all of the data
      PERFORM INSERT_NEW_REPORT TABLES MTAB_PROGRAM_SOURCE
                   MTAB_PROGRAM_TEXTS
                   MTAB_PROGRAM_DOCUMENTATION
            USING  TRDIR
                   MSTR_THEAD.
    Start of processing          *
    START-OF-SELECTION.
      FORMAT COLOR COL_NORMAL.
      IF RB_DOWN = 'X'.
        PERFORM DOWNLOAD_REPORTS.
      ELSEIF RB_UP = 'X'.
        PERFORM UPLOAD_REPORTS.
      ENDIF.
    END-OF-SELECTION.
      IF RB_DOWN = 'X'.
        CONCATENATE P_PATH
                    'directory.txt'
          INTO P_PATH.
        PERFORM SAVE_TABLE_TO_FILE TABLES MTAB_DIRECTORY
               USING  P_PATH.
      ENDIF.
          FORM UPLOAD_REPORTS   *
    FORM UPLOAD_REPORTS.
    *-- Can upload a reports entered in selection criteria or
    *-- select from a list.  List can be from index.txt in same directory
    *-- (created by the download) or by reading the first line of each file
    *-- in the directory.
      IF RB_FILE = 'X'. " Upload single program from a file
    *-- Read file into an internal table
        PERFORM READ_REPORT_FROM_DISK TABLES MTAB_PROGRAM_FILE
                  USING  P_PATH.
    *-- Split table into TADIR entry, report lines, and report text
        PERFORM SPLIT_INCOMING_FILE TABLES MTAB_PROGRAM_FILE
                       MTAB_PROGRAM_SOURCE
                       MTAB_PROGRAM_TEXTS
                       MTAB_PROGRAM_DOCUMENTATION
              CHANGING TRDIR
                       MSTR_THEAD.
    *-- Save all of the data
        PERFORM INSERT_NEW_REPORT TABLES MTAB_PROGRAM_SOURCE
                     MTAB_PROGRAM_TEXTS
                     MTAB_PROGRAM_DOCUMENTATION
              USING  TRDIR
                     MSTR_THEAD.
      ELSEIF RB_LIST = 'X'. " Show list for user to choose from
    *-- get list of report names/descriptions from directory text
        CONCATENATE P_PATH
                    'directory.txt'
        INTO P_PATH.
        PERFORM READ_REPORT_FROM_DISK TABLES MTAB_DIRECTORY
                  USING  P_PATH.
        SORT MTAB_DIRECTORY.
    *-- Write out list of report names/descriptions
        LOOP AT MTAB_DIRECTORY.
          WRITE:
            / MTAB_DIRECTORY-NAME UNDER TEXT-H01,
              MTAB_DIRECTORY-DESC UNDER TEXT-H03,
              MTAB_DIRECTORY-SAVENAME.
        ENDLOOP.
    *-- Process user selections for reports to upload.
      ENDIF.
    ENDFORM.           " upload_reports
          FORM DOWNLOAD_REPORTS *
          From the user selections, get all programs that meet the      *
          criteria, and save them in ftab_program_directory.            *
          Also save the report to disk.             *
    FORM DOWNLOAD_REPORTS.
      DATA:
        LC_FULL_FILENAME LIKE RLGRAP-FILENAME.
    *-- The table is put into an internal table because the program will
    *-- abend if multiple transfers to a dataset occur within a SELECT/
    *-- ENDSELCT (tested on 3.1H)
      SELECT * FROM  TRDIR
             INTO TABLE MTAB_PROGRAM_TRDIR
             WHERE  NAME  IN S_NAME
             AND    SUBC  IN S_SUBC
             AND    CNAM  IN S_CNAM
             AND    UNAM  IN S_UNAM
             AND    CDAT  IN S_CDAT
             AND    UDAT  IN S_UDAT.
      LOOP AT MTAB_PROGRAM_TRDIR.
    *-- Clear out text and source code tables
        CLEAR:
          MTAB_PROGRAM_FILE,
          MTAB_PROGRAM_SOURCE,
          MTAB_PROGRAM_TEXTS,
          MTAB_PROGRAM_DOCUMENTATION.
        REFRESH:
          MTAB_PROGRAM_FILE,
          MTAB_PROGRAM_SOURCE,
          MTAB_PROGRAM_TEXTS,
          MTAB_PROGRAM_DOCUMENTATION.
    *-- Get the report
        READ REPORT MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_SOURCE.
    *-- Get the text for the report
        READ TEXTPOOL MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_TEXTS.
    *-- Get the documentation for the report
        CLEAR DOKIL.
        SELECT * UP TO 1 ROWS FROM DOKIL
               WHERE  ID          = 'RE'
               AND    OBJECT      = MTAB_PROGRAM_TRDIR-NAME
               AND    LANGU       = SY-LANGU
               AND    TYP         = 'E'
               ORDER BY VERSION DESCENDING.
        ENDSELECT.
    *-- Documentation exists for this object
        IF SY-SUBRC = 0.
          CALL FUNCTION 'DOCU_READ'
               EXPORTING
                    ID      = DOKIL-ID
                    LANGU   = DOKIL-LANGU
                    OBJECT  = DOKIL-OBJECT
                    TYP     = DOKIL-TYP
                    VERSION = DOKIL-VERSION
               IMPORTING
                    HEAD    = MSTR_THEAD
               TABLES
                    LINE    = MTAB_PROGRAM_DOCUMENTATION
               EXCEPTIONS
                    OTHERS  = 1.
        ENDIF.
    *-- Put the report code and texts into a single file
    *-- Put the identifier line in so that the start of the TRDIR line
    *-- is marked
        CONCATENATE MC_TRDIR_IDENTIFIER
        MTAB_PROGRAM_TRDIR-NAME
        INTO MTAB_PROGRAM_FILE-LINE.
        APPEND MTAB_PROGRAM_FILE.
    *-- Add the TRDIR line
        MTAB_PROGRAM_FILE-LINE = MTAB_PROGRAM_TRDIR.
        APPEND MTAB_PROGRAM_FILE.
    *-- Put the identifier line in so that the start of the report code
    *-- is marked
        CONCATENATE MC_REPORT_IDENTIFIER
                    MTAB_PROGRAM_TRDIR-NAME
          INTO MTAB_PROGRAM_FILE-LINE.
        APPEND MTAB_PROGRAM_FILE.
    *-- Add the report code
        LOOP AT MTAB_PROGRAM_SOURCE.
          MTAB_PROGRAM_FILE = MTAB_PROGRAM_SOURCE.
          APPEND MTAB_PROGRAM_FILE.
        ENDLOOP.
    *-- Put the identifier line in so that the start of the report text
    *-- is marked
        CONCATENATE MC_TEXT_IDENTIFIER
                    MTAB_PROGRAM_TRDIR-NAME
          INTO MTAB_PROGRAM_FILE-LINE.
        APPEND MTAB_PROGRAM_FILE.
    *-- Add the report texts
        LOOP AT MTAB_PROGRAM_TEXTS.
          MTAB_PROGRAM_FILE = MTAB_PROGRAM_TEXTS.
          APPEND MTAB_PROGRAM_FILE.
        ENDLOOP.
    *-- Put the identifier line in so that the start of the THEAD record
    *-- is marked
        CONCATENATE MC_THEAD_IDENTIFIER
                    MTAB_PROGRAM_TRDIR-NAME
          INTO MTAB_PROGRAM_FILE-LINE.
        APPEND MTAB_PROGRAM_FILE.
        MTAB_PROGRAM_FILE = MSTR_THEAD.
        APPEND MTAB_PROGRAM_FILE.
    *-- Put the identifier line in so that the start of the report
    *-- documentation is marked
        CONCATENATE MC_DOC_IDENTIFIER
                    MTAB_PROGRAM_TRDIR-NAME
          INTO MTAB_PROGRAM_FILE-LINE.
        APPEND MTAB_PROGRAM_FILE.
    *-- Add the report documentation
        LOOP AT MTAB_PROGRAM_DOCUMENTATION.
          MTAB_PROGRAM_FILE = MTAB_PROGRAM_DOCUMENTATION.
          APPEND MTAB_PROGRAM_FILE.
        ENDLOOP.
    *-- Make the fully pathed filename that report will be saved to
        CONCATENATE P_PATH
                    MTAB_PROGRAM_TRDIR-NAME
                    '.txt'
          INTO LC_FULL_FILENAME.
        PERFORM SAVE_TABLE_TO_FILE TABLES MTAB_PROGRAM_FILE
               USING  LC_FULL_FILENAME.
    *-- Write out message with Program Name/Description
        READ TABLE MTAB_PROGRAM_TEXTS WITH KEY ID = 'R'.
        IF SY-SUBRC = 0.
          MTAB_DIRECTORY-NAME = MTAB_PROGRAM_TRDIR-NAME.
          MTAB_DIRECTORY-DESC = MTAB_PROGRAM_TEXTS-ENTRY.
          MTAB_DIRECTORY-SAVENAME = LC_FULL_FILENAME.
          APPEND MTAB_DIRECTORY.
          WRITE: / MTAB_PROGRAM_TRDIR-NAME,
                   MTAB_PROGRAM_TEXTS-ENTRY(65) COLOR COL_HEADING.
        ELSE.
          MTAB_DIRECTORY-NAME = MTAB_PROGRAM_TRDIR-NAME.
          MTAB_DIRECTORY-DESC = 'No description available'.
          MTAB_DIRECTORY-SAVENAME = LC_FULL_FILENAME.
          APPEND MTAB_DIRECTORY.
          WRITE: / MTAB_PROGRAM_TRDIR-NAME.
        ENDIF.
      ENDLOOP.
    ENDFORM.           " BUILD_PROGRAM_DIRECTORY
          FORM SAVE_TABLE_TO_FILE                   *
    -->  FTAB_TABLE            *
    -->  F_FILENAME            *
    FORM SAVE_TABLE_TO_FILE TABLES FTAB_TABLE
        USING  F_FILENAME.
      IF RB_DOS = 'X'.                  " Save file to presentation server
        CALL FUNCTION 'WS_DOWNLOAD'
             EXPORTING
                  FILENAME = F_FILENAME
                  FILETYPE = 'ASC'
             TABLES
                  DATA_TAB = FTAB_TABLE
             EXCEPTIONS
                  OTHERS   = 4.
        IF SY-SUBRC NE 0.
          WRITE: / 'Error opening dataset' COLOR COL_NEGATIVE,
                   F_FILENAME COLOR COL_NEGATIVE.
        ENDIF.
      ELSE.            " Save file to application server
        OPEN DATASET F_FILENAME FOR OUTPUT IN TEXT MODE.
        IF SY-SUBRC = 0.
          LOOP AT FTAB_TABLE.
            TRANSFER FTAB_TABLE TO F_FILENAME.
            IF SY-SUBRC NE 0.
              WRITE: / 'Error writing record to file;' COLOR COL_NEGATIVE,
                       F_FILENAME COLOR COL_NEGATIVE.
            ENDIF.
          ENDLOOP.
        ELSE.
          WRITE: / 'Error opening dataset' COLOR COL_NEGATIVE,
                   F_FILENAME COLOR COL_NEGATIVE.
        ENDIF.
      ENDIF.           " End RB_DOS
    ENDFORM.           " SAVE_PROGRAM
          FORM READ_REPORT_FROM_DISK                *
          Read report into internal table.  Can read from local or      *
          remote computer       *
    FORM READ_REPORT_FROM_DISK TABLES FTAB_TABLE
           USING  F_FILENAME.
      DATA:
         LC_MESSAGE(128) TYPE C.
      CLEAR   FTAB_TABLE.
      REFRESH FTAB_TABLE.
      IF RB_DOS = 'X'.
        TRANSLATE F_FILENAME USING '/\'.   " correct slash for Dos PC file
        CALL FUNCTION 'WS_UPLOAD'
             EXPORTING
                  FILENAME            = F_FILENAME
                  FILETYPE            = 'ASC'
             TABLES
                  DATA_TAB            = FTAB_TABLE
             EXCEPTIONS
                  CONVERSION_ERROR    = 1
                  FILE_OPEN_ERROR     = 2
                  FILE_READ_ERROR     = 3
                  INVALID_TABLE_WIDTH = 4
                  INVALID_TYPE        = 5
                  NO_BATCH            = 6
                  UNKNOWN_ERROR       = 7
                  OTHERS              = 8.
        IF SY-SUBRC >< 0.
          WRITE: / 'Error reading file from local PC' COLOR COL_NEGATIVE.
        ENDIF.
      ELSEIF RB_UNIX = 'X'.
        TRANSLATE F_FILENAME USING '\/'.   " correct slash for unix
        OPEN DATASET F_FILENAME FOR INPUT MESSAGE LC_MESSAGE IN TEXT MODE.
        IF SY-SUBRC = 0.
          DO.
            READ DATASET F_FILENAME INTO FTAB_TABLE.
            IF SY-SUBRC = 0.
              APPEND FTAB_TABLE.
            ELSE.
              EXIT.
            ENDIF.
          ENDDO.
          CLOSE DATASET F_FILENAME.
        ELSE.
          WRITE: / 'Error reading file from remote computer'
      COLOR COL_NEGATIVE,
                 / LC_MESSAGE,
                 / F_FILENAME.
          SY-SUBRC = 4.
        ENDIF.
      ENDIF.
    ENDFORM.           " READ_REPORT_FROM_DISK
          FORM SPLIT_INCOMING_FILE                  *
    -->  FTAB_PROGRAM_FILE     *
    -->  FTAB_PROGRAM_SOURCE   *
    -->  ` *
    -->  FTAB_PROGRAM_TEXTS    *
    FORM SPLIT_INCOMING_FILE TABLES FTAB_PROGRAM_FILE
                     STRUCTURE MTAB_PROGRAM_FILE
                FTAB_PROGRAM_SOURCE
                     STRUCTURE MTAB_PROGRAM_SOURCE
                FTAB_PROGRAM_TEXTS
                     STRUCTURE MTAB_PROGRAM_TEXTS
                FTAB_PROGRAM_DOCUMENTATION
                    STRUCTURE MTAB_PROGRAM_DOCUMENTATION
       CHANGING FSTR_TRDIR
                FSTR_THEAD.
      DATA:
        LC_DATATYPE(4) TYPE C,             " Type of data, REPO, TEXP, RDIR
        LC_PROGRAM_FILE LIKE MTAB_PROGRAM_FILE.
      LOOP AT FTAB_PROGRAM_FILE.
        LC_PROGRAM_FILE = FTAB_PROGRAM_FILE.
        CASE LC_PROGRAM_FILE(9).
          WHEN MC_TRDIR_IDENTIFIER.
            LC_DATATYPE = MC_TRDIR_SHORT.
          WHEN MC_REPORT_IDENTIFIER.
            LC_DATATYPE = MC_REPORT_SHORT.
          WHEN MC_TEXT_IDENTIFIER.
            LC_DATATYPE = MC_TEXT_SHORT.
          WHEN MC_DOC_IDENTIFIER.
            LC_DATATYPE = MC_DOC_SHORT.
          WHEN MC_THEAD_IDENTIFIER.
            LC_DATATYPE = MC_THEAD_SHORT.
          WHEN OTHERS. " Actual contents of report, trdir, or text
            CASE LC_DATATYPE.
              WHEN MC_TRDIR_SHORT.
                FSTR_TRDIR = FTAB_PROGRAM_FILE.
              WHEN MC_REPORT_SHORT.
                FTAB_PROGRAM_SOURCE = FTAB_PROGRAM_FILE.
                APPEND FTAB_PROGRAM_SOURCE.
              WHEN MC_TEXT_SHORT.
                FTAB_PROGRAM_TEXTS = FTAB_PROGRAM_FILE.
                APPEND FTAB_PROGRAM_TEXTS.
              WHEN MC_THEAD_SHORT.
                FSTR_THEAD = FTAB_PROGRAM_FILE.
              WHEN MC_DOC_SHORT.
                FTAB_PROGRAM_DOCUMENTATION = FTAB_PROGRAM_FILE.
                APPEND FTAB_PROGRAM_DOCUMENTATION.
            ENDCASE.
        ENDCASE.
      ENDLOOP.
    ENDFORM.           " SPLIT_INCOMING_FILE
          FORM INSERT_NEW_REPORT*
    -->  FTAB_PROGRAM_SOURCE   *
    -->  FTAB_PROGRAM_TEXTS    *
    -->  F_TRDIR               *
    FORM INSERT_NEW_REPORT TABLES FTAB_PROGRAM_SOURCE
                  STRUCTURE MTAB_PROGRAM_SOURCE
              FTAB_PROGRAM_TEXTS
                   STRUCTURE MTAB_PROGRAM_TEXTS
              FTAB_PROGRAM_DOCUMENTATION
                   STRUCTURE MTAB_PROGRAM_DOCUMENTATION
       USING  FSTR_TRDIR LIKE TRDIR
              FSTR_THEAD LIKE MSTR_THEAD.
      DATA:
        LC_OBJ_NAME LIKE E071-OBJ_NAME,
        LC_LINE2(40)     TYPE C,
        LC_ANSWER(1)     TYPE C.
    *-- read trdir to see if the report already exists, if it does, prompt
    *-- user to overwrite or abort.
      SELECT SINGLE * FROM TRDIR WHERE NAME = FSTR_TRDIR-NAME.
      IF SY-SUBRC = 0. " Already exists
        CONCATENATE 'want to overwrite report'
                    FSTR_TRDIR-NAME
          INTO LC_LINE2 SEPARATED BY SPACE.
        CONCATENATE LC_LINE2
          INTO LC_LINE2.
        CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
             EXPORTING
                  DEFAULTOPTION  = 'N'
                  TEXTLINE1   = 'The selected report already exists, do you'
                  TEXTLINE2      = LC_LINE2
                  TITEL          = 'Report already exists'
                  CANCEL_DISPLAY = SPACE
             IMPORTING
                  ANSWER         = LC_ANSWER
             EXCEPTIONS
                  OTHERS         = 1.
      ELSE.
        LC_ANSWER = 'J'.
      ENDIF.
      IF LC_ANSWER = 'J'.
    *-- Create the TADIR entry.  (TRDIR entry created by INSERT REPORT)
        LC_OBJ_NAME = TRDIR-NAME.
        CALL FUNCTION 'TR_TADIR_POPUP_ENTRY_E071'
             EXPORTING
                  WI_E071_PGMID     = 'R3TR'
                  WI_E071_OBJECT    = 'PROG'
                  WI_E071_OBJ_NAME  = LC_OBJ_NAME
                  WI_TADIR_DEVCLASS = '$TMP'
             EXCEPTIONS
                  EXIT              = 3
                  OTHERS            = 4.
        IF SY-SUBRC = 0.
    *-- Create Report
          INSERT REPORT FSTR_TRDIR-NAME FROM FTAB_PROGRAM_SOURCE.
    *-- Create Texts
          INSERT TEXTPOOL FSTR_TRDIR-NAME FROM FTAB_PROGRAM_TEXTS
                 LANGUAGE SY-LANGU.
    *-- Save Documentation
          CALL FUNCTION 'DOCU_UPDATE'
               EXPORTING
                    HEAD    = FSTR_THEAD
                    STATE   = 'A'
                    TYP     = 'E'
                    VERSION = '1'
               TABLES
                    LINE    = FTAB_PROGRAM_DOCUMENTATION
               EXCEPTIONS
                    OTHERS  = 1.
        ELSE.
          WRITE: / 'Error updating the TADIR entry' COLOR COL_NEGATIVE,
                   'Program' COLOR COL_NEGATIVE INTENSIFIED OFF,
                   FSTR_TRDIR-NAME, 'was not loaded into SAP.'
                      COLOR COL_NEGATIVE INTENSIFIED OFF.
        ENDIF.
      ELSE.
        WRITE: / FSTR_TRDIR-NAME COLOR COL_NEGATIVE,
                 'was not uploaded into SAP.  Action cancelled by user'
                     COLOR COL_NEGATIVE INTENSIFIED OFF.
      ENDIF.
    ENDFORM.           " INSERT_NEW_REPORT
          FORM GET_NAME         *
    -->  VALUE(F_FIELD)        *
    -->  F_NAME                *
    FORM GET_NAME USING VALUE(F_FIELD)
               CHANGING F_NAME.
      DATA: LTAB_FIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE,
            LC_PROG LIKE D020S-PROG,
            LC_DNUM LIKE D020S-DNUM.
      TRANSLATE F_FIELD TO UPPER CASE.
      refresh ltab_fields.
      LTAB_FIELDS-FIELDNAME = F_FIELD.
      append ltab_fields.
      LC_PROG =  SY-REPID .
      LC_DNUM =  SY-DYNNR .
      CALL FUNCTION 'DYNP_VALUES_READ'
           EXPORTING
                DYNAME     = LC_PROG
                DYNUMB     = LC_DNUM
           TABLES
                dynpfields = ltab_fields
           EXCEPTIONS
                OTHERS     = 01.
      read table ltab_fields index 1.
      IF SY-SUBRC EQ 0.
        F_NAME = LTAB_FIELDS-FIELDVALUE.
        refresh ltab_fields.
      ENDIF.
      CALL FUNCTION 'F4_USER'
           EXPORTING
                OBJECT = F_NAME
           IMPORTING
                RESULT = F_NAME.
    ENDFORM.           " GET_NAME
    Program Texts
    DIR             File Download Options (File Selection)
    FIL             File Options     
    FNA             Enter filename below (under File Options)
    H01             Prog Name
    H03             Program Description
    SNG             Upload a single file
    UDL             Upload to SAP/Download from SAP
    UPL             File Upload Options
    R               Backup/Restore program source code with texts
    P_PATH          Path to save programs to
    RB_DOS          Files on local computer
    RB_DOWN         Download Programs
    RB_FILE         Upload a single file
    RB_LIST         Select program(s) from a list          
    RB_UNIX         Files on remote computer               
    RB_UP           Upload Programs to SAP                 
    S_CDAT          Date Created       
    S_CNAM          Created by UserID  
    S_NAME          Program Name       
    S_SUBC          Program Type       
    S_UDAT          Date Changed       
    S_UNAM          Last Changed by UserID     
    Regards,
    Joy.

  • Code for UpLoad program to load Custom PA infotype

    I need to develope UpLoad program to load Custom PA infotype which I created with 9001.
    Can you please give the complete code to Write upload program using standard available FM .
    Points will be awarded........
    Thanks
    Raj

    As this is a custom Infotype and no code is readily available, I would suugest that you try transction SHDB and record loading data into this Infotype.  This interm can be converted to a program which you can then tweek.  If I get stuck writting a BDC upload program then this is where I start.
    Regards
    J

  • Problem with catalog upload program !!

    Hi GURUs,
    Using CCM upload program we are trying to upload a file for deleting/adding/changing supplier catalog items.
    - Some times it work fine.
    - But some times supplier catalog is going into error.
    - The display log on CCM screen is all green with no errors.
    - When checked in SLG1 we are getting error "Error when deleting item XXXXXXX (ID)",though the item is present in supplier  catalog.
    Kindly help.
    Note: We are at CCM2.0
    Thanks in Adv. !!
    Vivek

    Hi Serguei,
    Thanks for your reply.
    our content file format is XLS (Excel sheet). We are having customized program to load the data into CCM. The program inturn convert the .XLS file into XML format. This program is directly submitting the jobs in background to load the data into CCM.
    Due to this I am not sure how to debug this and capture the defect.
    Kindly help.
    Thanks in Adv. !!
    Vivek

  • Help on Shopping Cart Upload Program

    Hi All,
    I am trying develop a program for uploading Shopping Carts from EXCEL Spread Sheet.
    I have gone through the following thread. But still I am facing the problems:
    /message/3082168#3082168 [original link is broken]
    Procedure 1: I developed program with 'BBP_PD_SC_CREATE_EXTERNAL', I got the following erros
    Shopping Cart Upload Program
    00001 E 008
    No account assignment exists. Enter an account assignment
                         000000
    00001 E 047
    Please specify Account Assignment by selecting "Known" radio button for
                         000000 Please specify Account Assignment by selecting "Known" radio button for
    00001 E 247
    Plant for follow-on document missing
                         000000
    Procedure 2: I used BBP_PD_SC_CREATE. I am getting the following Errors:
    Shopping Cart Upload Program
    A
    Interface data contains errors
    A
    Interface data contains errors
    A
    Interface data contains errors
    A
    No data found
    A
    No data found
    A
    The document does not exist. Check entries
    A
    Incorrect interface data for set PDDEP in method C
    A
    Incorrect interface data for set PDDYN in method C
    A
    Incorrect interface data for set PDFRT in method C
    A
    Incorrect interface data for set PDHCF in method C
    A
    Incorrect interface data for set PDORG in method C
    A
    Incorrect interface data for set PDTAX in method C
    A
    Incorrect interface data for set PDTOL in method C
    A
    Incorrect interface data for set PDWGT in method C
    E
    Enter at least one item or one limit
    Procedure 1 Sample Program:
    DATA: i_basket        TYPE TABLE OF bbp_basket_ext_device,
          i_basket_back   TYPE TABLE OF bbp_basket_back,
          i_basket_errors TYPE TABLE OF bbp_oci_errors.
    DATA: w_basket        TYPE bbp_basket_ext_device,
          w_basket_back   TYPE bbp_basket_back,
          w_basket_errors TYPE bbp_oci_errors.
    PARAMETERS: p_user TYPE sy-uname DEFAULT 'REQUESTER'.
    CLEAR w_basket.
    w_basket-basket_name = 'Test Shopping Cart'.
    w_basket-line = '00001'.
    w_basket-description = 'Mat Desc New'.
    w_basket-quantity = 1.
    w_basket-unit = 'EA'.
    w_basket-price = 10.
    w_basket-priceunit = 1.
    w_basket-currency = 'USD'.
    w_basket-vendor = '0000301300'.
    w_basket-category_id = 'L03621101'.
    APPEND w_basket TO i_basket.
    CALL FUNCTION 'BBP_PD_SC_CREATE_EXTERNAL'
      EXPORTING
        user_name     = p_user
      TABLES
        basket        = i_basket
        basket_back   = i_basket_back
        basket_errors = i_basket_errors
      EXCEPTIONS
        not_saved     = 1
        OTHERS        = 2.
    IF sy-subrc EQ 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    LOOP AT i_basket_back INTO w_basket_back.
      WRITE:/ w_basket_back-basket, w_basket_back-basket_number.
    ENDLOOP.
    LOOP AT  i_basket_errors INTO w_basket_errors.
      WRITE:/ w_basket_errors-line,
              w_basket_errors-type,
              w_basket_errors-code,
              w_basket_errors-message,
              w_basket_errors-log_no,
              w_basket_errors-log_msg_no,
              w_basket_errors-message_v1,
              w_basket_errors-message_v2,
              w_basket_errors-message_v3,
              w_basket_errors-message_v4.
    ENDLOOP.
    Procedure 2 Sample Program:
    DATA: v_header_guid  TYPE crmd_orderadm_h-guid,
          v_item_guid    TYPE crmd_orderadm_h-guid,
          v_account_guid TYPE crmd_orderadm_h-guid,
          v_partner_guid TYPE crmd_orderadm_h-guid,
          v_orgdata_guid TYPE crmd_orderadm_h-guid.
    DATA: i_messages TYPE TABLE OF bbp_pds_messages,
          i_item     TYPE TABLE OF bbp_pds_sc_item_d,
          i_account  TYPE TABLE OF bbp_pds_acc,
          i_partner  TYPE TABLE OF bbp_pds_partner,
          i_orgdata  TYPE TABLE OF bbp_pds_org.
    DATA: w_header   TYPE bbp_pds_sc_header_ic,
          w_e_header TYPE bbp_pds_sc_header_d,
          w_messages TYPE bbp_pds_messages,
          w_item     TYPE bbp_pds_sc_item_d,
          w_account  TYPE bbp_pds_acc,
          w_partner  TYPE bbp_pds_partner,
          w_orgdata  TYPE bbp_pds_org.
    CLEAR i_messages.
    v_header_guid  = 1.
    v_item_guid = 2.
    v_account_guid = 3.
    v_partner_guid = 4.
    v_orgdata_guid = 5.
    *header-guid = 1.
    *item-parent = 1.
    *item-guid = 2.
    *accounting-guid = 3.
    *accounting-p_guid = item-guid.
    *partner-partner_guid = 4.
    *partner-p_guid = item-guid.
    *organization-guid = 5.
    *organization-p_guid = item-guid.
    *I_HEADER
    CLEAR w_header.
    w_header-guid = v_header_guid.
    w_header-object_id  = 'BUS2121'.
    w_header-description = 'Test SC Upload'.
    w_header-currency = 'GBP'.
    w_header-process_type = 'SHC'.
    w_header-posting_date = sy-datum.
    *I_ITEM
    * DELIV_DATE, PRODUCT_TYPE, LOGSYS_FI, BE_CO_CODE.
    CLEAR w_item.
    w_item-guid = v_item_guid.
    w_item-parent = v_header_guid.
    w_item-number_int = '0000000001'.
    w_item-number_ext = '0000000000'.
    w_item-product = '45ACB1298F870099000000000A8E0327'.
    w_item-description = 'Lay Main <=180'.
    w_item-category = 'FC888C591C4CFC4081AE49F48750CBAB'.
    w_item-category_id = 'L03621101'.
    w_item-ext_quote_item = '0000000000'.
    w_item-quantity = 1.
    w_item-unit = 'EA'.
    w_item-ordered_prod = '/EC_1A001'.
    w_item-price = 2.
    w_item-price_unit = 1.
    w_item-gross_price = 2.
    w_item-currency = 'USD'.
    w_item-del_datcat = 1.
    w_item-deliv_date = sy-datum.
    w_item-product_type = '01'.
    w_item-logsys_fi = 'DEVCLNT100'.
    w_item-be_log_system = 'SRDCLNT100'.
    *w_item-be_stge_loc = 'MAIN'.
    w_item-be_plant = '1020'.
    *w_item-be_move_type = '281'.
    w_item-be_pur_group = '50002754'.
    w_item-be_pur_org = '50000040'.
    w_item-be_co_code = '1020'.
    w_item-be_doc_type = 'ECPO'.
    APPEND w_item TO i_item.
    *I_ACCOUNT
    CLEAR w_account.
    w_account-guid = v_account_guid.
    w_account-p_guid = v_item_guid.
    w_account-distr_perc = 100.
    w_account-acc_no = '0001'.
    w_account-acc_cat = 'OR'.
    *w_account-SRC_GUID 00000000000000000000000000000000
    w_account-g_l_acct = '0000621101'.
    *w_account-BUS_AREA VTRS
    w_account-cost_ctr = ' 0000012061'.
    w_account-sdoc_item = '000000'.
    w_account-sched_line = '0000'.
    w_account-co_area = 'EXEL'.
    *w_account-profit_ctr = 'NM01'.
    *w_account-PROF_SEGM 0000000000
    *w_account-CMMT_ITEM 500411060
    *w_account-FUNDS_CTR 6589
    APPEND w_account TO i_account.
    *I_PARTNER
    CLEAR w_partner.
    w_partner-partner_guid = v_partner_guid.
    w_partner-p_guid  = v_item_guid.
    w_partner-partner_fct = '00000016'.
    w_partner-partner_no = '48ED292BF5193C52E1000000AC1D061F'.
    w_partner-addr_type = '3'.
    w_partner-addr_origin = 'A'.
    w_partner-addr_no = '0000011078'.
    w_partner-partner_id = '0000000941'.
    APPEND w_partner TO i_partner.
    CLEAR v_partner_guid.
    CLEAR w_partner.
    w_partner-partner_guid = v_partner_guid.
    w_partner-p_guid  = v_item_guid.
    w_partner-partner_fct = '00000020'.
    w_partner-partner_no = '4896D1636F351467E1000000AC1D061F'.
    w_partner-addr_type = '3'.
    w_partner-addr_origin = 'A'.
    w_partner-addr_no = '0000011078'.
    w_partner-partner_id = '0000000941'.
    APPEND w_partner TO i_partner.
    CLEAR v_partner_guid.
    CLEAR w_partner.
    w_partner-partner_guid = v_partner_guid.
    w_partner-p_guid  = v_item_guid.
    w_partner-partner_fct = '00000027'.
    w_partner-partner_no = 'B106B75848BC9B4584C8A1C1EB89EC94'.
    w_partner-addr_type = '1'.
    w_partner-addr_origin = 'B'.
    w_partner-addr_no = '0000015958'.
    w_partner-partner_id = '0000000915'.
    APPEND w_partner TO i_partner.
    *I_ORGDATA
    CLEAR w_orgdata.
    w_orgdata-guid = v_orgdata_guid.
    w_orgdata-p_guid  = v_item_guid.
    w_orgdata-proc_org_resp_id = '50002754'.
    w_orgdata-proc_group_id = '50002754'.
    w_orgdata-proc_org_id = '50000040'.
    APPEND w_orgdata TO i_orgdata.
    CALL FUNCTION 'BBP_PD_SC_CREATE'
      EXPORTING
        i_ref_guid = v_header_guid
        i_park     = 'X'
        i_save     = 'X'
        i_header   = w_header
      IMPORTING
        e_header   = w_e_header
      TABLES
        i_item     = i_item
        i_account  = i_account
        i_partner  = i_partner
        i_orgdata  = i_orgdata
        e_messages = i_messages.
    LOOP AT i_messages INTO w_messages .
      WRITE:/ w_messages-msgty,
    *  w_messages-msgid,
    *  w_messages-msgno,
      w_messages-message
    *  w_messages-msgv1,
    *  w_messages-msgv2,
    *  w_messages-msgv3,
    *  w_messages-msgv4
    ENDLOOP
    Thanks a lot in advance to help me out this.
    Please send if you have code to complete this to sudarsan.srm at gmail (gmail id - sudarsan.srm)
    Best Regards,
    Sudarsan

    Hi All,
    I forgot to mention SRM Version. I am working on SRM 4.0.
    Thanks,
    Best Regards,
    Sudarsan

  • Material Master upload Programe

    Hi anybody,
    I developed Material master upload programe in ABAP. Material is uploaded. but more than 18 characters materials is upload upto 18 characters last character is "!".
    Ex: SET SCREW M12X50MM L    - I want upload this material.
           But SAP takes automatically like SET SCREW M12X50M! 18 th character is "!" symbol.
    how do i resolve this problem. I want upload more than 18 characters.
    anybody please tell me this issue.
    Tks,
    S.Muthu.

    what are you talking about material code or material discription
    rgds
    Rajesh

  • File upload program by jsf

    I am doing one file upload program using
    <af:inputFile label="File to Upload" columns="90"
    value="#{FileProcessor.uploadedFile}"/>
    component..
    in Jdeveloper 11g i am getting the correct result,
    but when i'm tryin to run it in Jdeveloper jdevstudio10131 it is giving this error.
    java.io.EOFException: Per-request disk space limits exceeded. at oracle.adfinternal.view.faces.webapp.UploadedFileImpl.loadFile(UploadedFileImpl.java:187) at
    i want this file upload application to run in ecplise..but there it is not working..do i need so some to import some jar files??
    tomat 5.0 i'm using there..
    Or is there any otherway to upload file using jsf component which should work in eclipse-tomcat enviornment also..
    please help
    thanks

    Mr BalusC,
    Yes Iam talking about a custom made upload component. The fileupload tutorials u send are good but my requirement is not meeting them. Among my requirements one is mutilple file uploads in the single view page. This is possible at present with my custom upload componet. Only if the problem gets solved. Any way once again please think on my problem and give your solution on it.
    Here is my problem:
    The problem is I have to access the components from view page which this kind of requirement possible in jsp by request parsing which results the key value pairs of the form components. This same thing/way I should get in backing bean from JSF view page.
    The solution I want may like as follows.
    Note this code is incorrect and wrong but for to understand my requirement.
    someobject.getComponentIdValue("clientID"); which returns a string value as d:\images\Tutle.jpg
    The clientID is upload file component' Id . In the request it may be the key associated with value as file complete path. By this kind of way my upload filter is able to get the orignal file. Ok i need this in my  backing bean to get the orignal filename to insert into the database. Please for this give the solution or reply.many thanx,
    vijaycanaan.

  • I am making code to try to make a game and my problem is that my code......

    I am making code to try to make a game and my problem is that my code
    will not let it change the hit everytime so im getting the first guy to hit 1 then next hits 8 and so on and always repeats.
    Another problem is that I would like it to attack with out me telling it how much times to attack. I am using Object oriented programming.
    Here is the code for my objects:
    import java.lang.*;
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import java.util.Random;
    import static java.lang.Math.*;
    import java.awt.*;
    import java.awt.color.*;
    class rockCrab {
         //Wounding formula
         double sL = 70;                                   // my Strength Level
         double bP = 1;                                   // bonus for prayer (is 1 times prayer bonus)
         double aB = 0;                                 // equipment stats
         double eS = (sL * bP) + 3;                         // effective strength
         double bD = floor(1.3 + (eS/10) + (aB/80) + ((eS*aB)/640));     // my base damage
         //Attack formula
         double aL = 50;                                   // my Attack Level
         double eD = 1;                                   // enemy's Defence
         double eA = aL / eD;                              // effective Attack
         double eB = 0;                                   // equipment bonus'
         double bA = ((eA/10) * (eB/10));                    // base attack
         //The hit formula
         double fA = random() * bA;
         double fH = random() * bD;
         double done = rint(fH - fA);
         //health formula
         double health = floor(10 + sL/10 * aL/10);
         rockCrab() {
         void attack() {
              health = floor(10 + sL/10 * aL/10);
              double done = rint(fH - fA);
              fA = random() * bA;
              fH = random() * bD;
              done = rint(fH - fA);
              System.out.println("Rockcrab hit" +done);
    import java.lang.*;
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import java.util.Random;
    import static java.lang.Math.*;
    import java.awt.*;
    import java.awt.color.*;
    class self {
         //Wounding formula
         double sL = 1;                                   // my Strength Level
         double bP = 1;                                   // bonus for prayer (is 1 times prayer bonus)
         double aB = 0;                                 // equipment stats
         double eS = (sL * bP) + 3;                         // effective strength
         double bD = floor(1.3 + (eS/10) + (aB/80) + ((eS*aB)/640));     // my base damage
         //Attack formula
         double aL = 1;                                   // my Attack Level
         double eD = 1;                                   // enemy's Defence
         double eA = aL / eD;                              // effective Attack
         double eB = 0;                                   // equipment bonus'
         double bA = ((eA/10) * (eB/10));                    // base attack
         //The hit formula
         double fA = random() * bA;
         double fH = random() * bD;
         double done = rint(fH - fA);
         //health formula
         double health = floor(10 + sL/10 * aL/10);
         self() {
         void attack() {
              health = floor(10 + sL/10 * aL/10);
              fA = random() * bA;
              fH = random() * bD;
              done = rint(fH - fA);
              System.out.println("You hit" +done);
    }Here is the main code that writes what the objects do:
    class fight {
         public static void main(String[] args) {
              self instance1 = new self();
              rockCrab instance2 = new rockCrab();
              instance2.health = instance2.health - instance1.done;
              System.out.println("You hit: " +instance1.done);
              System.out.println("rockCrabs health: " + instance2.health);
              instance1.health = instance1.health - instance2.done;
              System.out.println("RockCrab hit: " +instance2.done);
              System.out.println("rockCrabs health: " + instance1.health);
              instance2.health = instance2.health - instance1.done;
              System.out.println("You hit: " +instance1.done);
              System.out.println("rockCrabs health: " + instance2.health);
              instance1.health = instance1.health - instance2.done;
              System.out.println("RockCrab hit: " +instance2.done);
              System.out.println("rockCrabs health: " + instance1.health);
              instance2.health = instance2.health - instance1.done;
              System.out.println("You hit: " +instance1.done);
              System.out.println("rockCrabs health: " + instance2.health);
              instance1.health = instance1.health - instance2.done;
              System.out.println("RockCrab hit: " +instance2.done);
              System.out.println("rockCrabs health: " + instance1.health);
              instance2.health = instance2.health - instance1.done;
              System.out.println("You hit: " +instance1.done);
              System.out.println("rockCrabs health: " + instance2.health);
              instance1.health = instance1.health - instance2.done;
              System.out.println("RockCrab hit: " +instance2.done);
              System.out.println("rockCrabs health: " + instance1.health);
    }when the code is run it says something like this:
    you hit 1
    RockCrabs health is 9
    RockCrab hit 7
    your health is 38
    you hit 1
    RockCrabs health is 8
    RockCrab hit 7
    your health is 31
    you hit 1
    RockCrabs health is 7
    RockCrab hit 7
    your health is 24
    you hit 1
    RockCrabs health is 6
    RockCrab hit 7
    your health is 17
    my point is whatever some one hits it always repeats that
    my expected output would have to be something like
    you hit 1
    RockCrabs health is 9
    RockCrab hit 9
    your health is 37
    you hit 3
    RockCrabs health is 6
    RockCrab hit 4
    your health is 33
    you hit 2
    RockCrabs health is 4
    RockCrab hit 7
    your health is 26
    you hit 3
    RockCrabs health is 1
    RockCrab hit 6
    your health is 20
    Edited by: rade134 on Jun 4, 2009 10:58 AM

    [_Crosspost_|http://forums.sun.com/thread.jspa?threadID=5390217] I'm locking.

  • Fail safe logic needed for purchase order upload program

    Hello all,
    i am working on creating PO's by reading data from a text file. I need to implement fail safe logic in it, which is to make sure this program uploads all the records in the text file successfully. For example, i have 1000 records in my text file and while running the upload program if the program times out while creating the 500th PO or if SAP is down at that time, then we have 499 PO's created and 501 yet to be created. But if we run the same program again, we will generate duplicate PO's for 499 again. I want to avoid this kind of problem.
    How do i implement this idea?
    Kindly guide me on this.
    Thanks.

    Ok ..
    Then I would suggest you use Application Log to keep the success and error messages of PO processing.
    You can check trsnaction SLG0 and create your own application log object.
    Then you need to use FMs BAL_LOG_* to crate and add messages to it.
    This way you will have a facility to check as which of your records are converted to PO for a run.
    In case SAP gets down in between , still you can find the details using Xn SLG1 and then accordingly remove the records from your file which are already converted to PO.
    Thanks,
    Ram

  • Problems with a simple stop watch program

    I would appreciate help sorting out a problem with a simple stop watch program. The problem is that it throws up inappropriate values. For example, the first time I ran it today it showed the best time at 19 seconds before the actual time had reached 2 seconds. I restarted the program and it ran correctly until about the thirtieth time I started it again when it was going okay until the display suddenly changed to something like '-50:31:30:50-'. I don't have screenshot because I had twenty thirteen year olds suddenly yelling at me that it was wrong. I clicked 'Stop' and then 'Start' again and it ran correctly.
    I have posted the whole code (minus the GUI section) because I want you to see that the program is very, very simple. I can't see where it could go wrong. I would appreciate any hints.
    public class StopWatch extends javax.swing.JFrame implements Runnable {
        int startTime, stopTime, totalTime, bestTime;
        private volatile Thread myThread = null;
        /** Creates new form StopWatch */
        public StopWatch() {
         startTime = 0;
         stopTime = 0;
         totalTime = 0;
         bestTime = 0;
         initComponents();
        public void run() {
         Thread thisThread = Thread.currentThread();
         while(myThread == thisThread) {
             try {
              Thread.sleep(100);
              getEnd();
             } catch (InterruptedException e) {}
        public void start() {
         if(myThread == null) {
             myThread = new Thread(this);
             myThread.start();
        public void getStart() {
         Calendar now = Calendar.getInstance();
         startTime = (now.get(Calendar.MINUTE) * 60) + now.get(Calendar.SECOND);
        public void getEnd() {
         Calendar now1 = Calendar.getInstance();
         stopTime = (now1.get(Calendar.MINUTE) * 60) + now1.get(Calendar.SECOND);
         totalTime = stopTime - startTime;
         setLabel();
         if(bestTime < totalTime) bestTime = totalTime;
        public void setLabel() {
         if((totalTime % 60) < 10) {
             jLabel1.setText(""+totalTime/60+ ":0"+(totalTime % 60));
         } else {
             jLabel1.setText(""+totalTime/60 + ":"+(totalTime % 60));
         if((bestTime % 60) < 10) {
             jLabel3.setText(""+bestTime/60+ ":0"+(bestTime % 60));
         } else {
             jLabel3.setText(""+bestTime/60 + ":"+(bestTime % 60));
        private void ButtonClicked(java.awt.event.ActionEvent evt) {                              
         JButton temp = (JButton) evt.getSource();
         if(temp.equals(jButton1)) {
             start();
             getStart();
         if(temp.equals(jButton2)) {
             getEnd();
             myThread = null;
         * @param args the command line arguments
        public static void main(String args[]) {
         java.awt.EventQueue.invokeLater(new Runnable() {
             public void run() {
              new StopWatch().setVisible(true);
        // Variables declaration - do not modify                    
        private javax.swing.JButton jButton1;
        private javax.swing.JButton jButton2;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JLabel jLabel2;
        private javax.swing.JLabel jLabel3;
        private javax.swing.JPanel jPanel1;
        // End of variables declaration                  
    }

    Although I appreciate this information, it still doesn't actually solve the problem. I can't see an error in the logic (or the code). The fact that the formatting works most of the time suggests that the problem does not lie there. As well, I use the same basic code for other time related displays e.g. countdown timers where the user sets a maximum time and the computer stops when zero is reached. I haven't had an error is these programs.
    For me, it is such a simple program and the room for errors seem small. I am guessing that I have misunderstood something about dates, but I obviously don't know.
    Again, thank you for taking the time to look at the problem and post a reply.

  • Download and upload program

    Hello to everybody,
    I'm looking for a standard program that can download and upload program' source codes. I found the program REPTRAN (in SAP release 6.0) that can only download the source code (with the include as well), but i didn't find the upload one.
    So, does anyone knows if exist a standard program that can download source codes (comprensive of include) and upload it as well?
    Thanks and bye..

    Hi,
    Here is code which read the Programs & download:
    Here Just pass the itab "SOURCE" into WS_DOWNLOAD.
    function zuplt01f_tr.
    *"*"Local interface:
    *"  IMPORTING
    *"     REFERENCE(PROGRAM_NAME) TYPE  SYREPID
    *"  TABLES
    *"      SOURCE
      data: f(240) type c,
            g type i,
            h(72) type c,
            low type i   .
      read report program_name into source . " state 'A'.
      describe table source  lines count.
    endfunction.
    Raja T

  • HI Masters , I need information for file upload program in web dynpro java

    Hi masters,
           i need some inforamtion and documentation on file upload program in web dynpro java

    Hi surya,
    You can follow this procedure to upload the file
    i) Take One Context Attribute named as "D1" of Type "binary".
    ii) Take one FileUpload UI Element in the Layout Tab.
    iii) Bind FileUpload UI Element's data Property to the taken Context Attribute. Here it is "D1".
    iv) Take one Button UI Element in the Layout Tab named "Upload" and in the Action of that Button write the following Code.
    v) The following code Generates one Folder in the Server & inside that Folder given file is Uploaded.
    File ff=new File("FolderXYZ"); // Creates One Folder with the given Name ( Here Folder name is "FolderXYZ")
    ff.mkdir();
    try
    byte b[]=null;
    IWDAttributeInfo objAttinfo=null;
    IWDModifiableBinaryType binType=null;
    File f=null;
    FileOutputStream fos=null;
    if(wdContext.currentContextElement().getD1()!=null)
    b=wdContext.currentContextElement().getD1();
    objAttinfo=wdContext.getNodeInfo().getAttribute(IPrivateAttachView.IContextElement.D1);
    binType=(IWDModifiableBinaryType)objAttinfo.getModifiableSimpleType();
    f=new File(ff.getName()+"
    "+binType.getFileName());
    fos=new FileOutputStream(f);
    fos.write(b);
    fos.flush();
    fos.close();
    objMessageManager.reportSuccess("File uploaded to server");
    } catch (Exception e)
    objMessageManager.reportException("Unable to upload file to server, error is:"+e,false);
    return;
    The Uploaded file is stored in the folder & that folder is stored in the Server's following Path.
    <Your Server>\c$\usr\sap\J2E\JC00\j2ee\cluster\server0
    You can access your Uploaded file from the following Path
    <Your Server>\c$\usr\sap\J2E\JC00\j2ee\cluster\server0\FolderXYZ
    Regards
    Sagar Ingalwar

  • I have encountered a peculiar problem in MM01 material master upload.

    I have encountered a peculiar problem in MM01 material master upload. The
    BDC program uploads data using Session method. The problem is when i
    process the session in foreground mode the data uploads successfully, but
    when i process it in background mode it gives the following errors in the
    log.
    'Control Framework: Fatal error - GUI cannot be reached'.
    'Runtime error RAISE_EXCEPTION has occurred'.
    When i debugged the program i found that this error is encountered when
    data is being input in 'Purchase Order text' editor of MM01 transaction.
    There is no problem with the BDC recording or the program as i could see.
    The only problem what i believe is the system is unable to call the text
    editor for inputting purchase order text data in background mode.

    Hi
    Try uploading a BAPI it would be better
    http://www.saptechies.com/mm01-upload-using-bapi/
    Regards
    Shiva

Maybe you are looking for

  • Derive week number of that month

    Hi, I need to derive week number based on month. Ex: Sy-datum = 10.10.2010 Month: 10.2010 Calweek: 40.2010 Week no: 2 Sy-datum = 11.10.2010 Month: 10.2010 Calweek: 41.2010 Week no: 3 So for everymonth I need to store the week no in the cube Ex Date--

  • Java SE Runtime Environment 5.0u22 will not install on Windows 98SE

    Hi, I know, its no longer supported. As I understand, Java SE Runtime Environment 5.0u22 is the last SE Runtime that works with Windows 98SE and, if so, I need to install on a Windows 98SE computer. This Windows 98SE machine currently has Java 2 Runt

  • My new program DUMP :

    My new program is dumping at the below stmt: IF NOT gt_soldto1[] IS INITIAL.     SELECT *                " kunnr name2 j_3astcu       FROM kna1       INTO CORRESPONDING FIELDS OF TABLE gt_kna1      FOR ALL ENTRIES IN gt_soldto1      WHERE ( name2   L

  • Standar cost calculatin CK11N

    Dear All, Actually the problem is When the user is doing costing for one material, the price is picking from standard cost price where as the user wants to pick form purchase info record. In costing variant the strategy sequence is given as below. 1.

  • [nQSError: 46104] The current operation was about to overflow the stack.

    Hi BI, I have some reports that return the following error: [nQSError: 43113] Message returned from OBIS. [nQSError: 46104] The current operation was about to overflow the stack. Please simplify or discontinue from the current operation. (HY000) Does