BDC in BSP

Hi all,
I've recorded PHAP_ADMIN_PA transaction and conveterd that into a function module.the function module is remote enabled.
Im calling that function module from my BSP page,
CALL fn_module_name DEStination 'NONE'
It works fine in debug mode
when i remove the breakpoint, the BDC returns the error message 'An unexpected technical error has occured'.
Any help will be much appreciated.
Thanks nd regards,
Jothi.P

Hi,
As tatvagna suggested call the follow the logic like this.
BSP Oninput Processing-> Call a customer Class Method-> code your FM inside this class method (Your recording from SHDB).
This will surely work. Even i had the same issue. The FM call will not be effective inside the BSP application HAP_DOCUMENT (Donno why).
I had coded like this for creating a Appraisal document in the background.
Call this customer method to get the document created in the background.
      CALL METHOD ycl_ehd_bsp_emp_add_data=>ess_create_document
        EXPORTING
          pernr        = lv_pernr
          template_id  = lv_template
        IMPORTING
          appraisal_id = lw_documents-appraisal_id.
Hope this helps you.
Regards,
Subbu.

Similar Messages

  • CNTR_ERROR While calling BDC from BSP

    Hi ALL
    I am calling a RFC from BSP which in turn call a BDC for the transaction TP04.
    When i run the BSP in debugging mode its posting data and  working fine.
    But otherwise also it doesn't throw any error on browser. but when i check ST22 it throws exception CNTL_ERROR.
    My function is remote enabled and i am using destination 'NONE' as well.
    I have also checked the Blog by Brian.
    suggestions are welcome
    Naresh

    Hi
    Browser is not giving any error,Friendly HTTP is turned off.
    I am calling my own fucntion module like this
    CALL FUNCTION 'ZTM_FM_TP04' destination 'NONE'
              EXPORTING
                emplno  = employeeno
                STARTDATE   = strtripbegin
                STARTTIME   = strstarttime
                ENDDATE     = strtripend
                ENDTIME     = strendtime
                FIRSTDEST   = strfirstdest
                COUNTRY     = strcountry1
                REASON      = strreason
                CASHADVANCE = strcashadvance
                CASHCURR    = strcashcurr
                BANKADVANCE = strbankadvance
                BANKCURR    = strbankcurr
              TABLES
                ADDDEST     = adddest.
    and within the function module i am calling Call Transaction like this
    CALL TRANSACTION 'TP04' USING BDCDATA
                         MODE   'N'.
    But its not posting any data and while checking thru ST22 its giving following error
                                                                                    A RAISE statement in the program "CL_GUI_CUSTOM_CONTAINER=======CP " raised th 
    exception                                                                     
    condition "CNTL_ERROR".                                                        
    Since the exception was not intercepted by a superior program                  
    in the hierarchy, processing was terminated.

  • Error When I use BDC in my BSP Application

    Hi,
       I am creating a BSP application to create scheduling Aggrement, as BAPI is not suiting my req I am using BDC. This BDC is used with in a method of my application class. If I give all the data properly, I don't have any problem, it displays the output fine, but whenever some error occurs it immediatly terminates the BSP application, it does not give any option to handle the error.
       Anyone can help me to solve this problem?
    Regards,
    Sathish

    check these threads
    Re: BDC in BSP
    CNTR_ERROR While calling BDC from BSP
    Regards
    Raja

  • Exception condition "CNTL_SYSTEM_ERROR" raised

    The one testing my LSMW program kept on receiveing this raise exception error everytime he run the batch input session using background mode of my LSMW program.  But he does not receive this error on foreground mode.  And when I tested the LSMW program, I did not receive the error both foreground and background mode.
    What would be the cause of this error?

    Hi Annalyn
    i faced the similar error few days back and the problem was  i was using text view control in BDC.becoz in background SAPGUI are not vailable so it gives error
    you can go thru the following link for more details
    Re: CNTR_ERROR While calling BDC from BSP
    Hope it may help you?
    Regards
    Naresh

  • Call Transaction by BSP

    I am facing a problem regarding a BDC for pa30 transaction ,for updating infotype 24.
    It is written through BSP application . When i create it's session through portal and run it through SM35 in the system ,It is perfectly working in 'forground' and 'error display only' mode.But by 'Call Transaction ' through portal directly it is not working .
    Even the session in SM35 gives me error when i run it in 'Background' mode.
    and the error is "Control Framework: Fatal error - GUI cannot be reached,Runtime error RAISE_EXCEPTION has occurred"
    Can any one suggest any solution so that it will work in portal by 'Call Transaction'?

    Hi Sachin,
    please read the following blog by Brian:
    BSP In-Depth: MESSAGE Statement Handling
    /people/mark.finnern/blog/2003/09/16/bsp-in-depth-message-statement-handling
    Most important is the part:
    "However, for BSP applications, no SAP GUI is available. Some types of messages are considered not important, and are silently ignored. Other messages result in exactly the above output. Effectively, an HTTP request is processed in a dark DYNP, and after the MESSAGE statement, the processing is stopped, and the text is converted into a small HTML page."
    Regards,
    Rainer

  • Sending PDF output attachment in e-mail to external users from BSP

    Hi All,
    Please gothrough the below requirement details :
    Requirement Details:
    Need to achieve the functionality of sending a PDF attachment of invoice to an external
    e-mail address from the BSP Application.
    Implementation Details:
    The Print out Output determination is already done in the system. We are using SAP R/3 4.7 (620)
    In the Transaction VF03 in the initial screen there is a menubar "Billing document" and underneath that menu there is a menu item called "Issue". If we click the "Issue" menu item all the output that are already proposed will be visible and we can select the printout Output determination and can issue a printout.
    I had created a FM to call from BSP and that function module will take the Invoice number as input and will call the "VF03" transaction using BDC and will trigger the Sapscript Printout . I see the the sapscript in the spool after I call the Function module .
    But I don't know how I can get the Spool request number for that Function module call from BSP page ????
    I got struck in this approach...
    If I know the Spool number after calling the function module the it's very easy to call the following FM's for sending a e-mail with the Invoice PDF attachment.
    CONVERT_OTFSPOOLJOB_2_PDF
    QCE1_CONVERT
    SO_NEW_DOCUMENT_ATT_SEND_API1
    Please let me know if anyone can help me in this ...
    Please reply ASAP.
    Thanks,
    Greetson

    Check out these weblogs.
    /people/sap.user72/blog/2004/11/10/bsphowto-generate-pdf-output-from-a-bsp
    /people/thomas.jung3/blog/2004/09/08/sending-e-mail-from-abap--version-610-and-higher--bcs-interface
    Regards
    Raja

  • Re : BSP App. taking More Time for Processing

    Hi,
       We are using WAS 620 , created a bsp application to create trips thru bdc's.
       In our development system its going fine but in our quality system its taking more that 10 mins for posting.
    When we check thru SM04 the icm session and icm req session are there for long time.
       Is there any setting to do with icm for executing bdc's/posting programs.
    Looking  for help from u all to solve this issue....
    Thanks and Regards,
    K Vijayasekar.

    Check out this weblog to get you started:
    /people/mark.finnern/blog/2003/09/24/bsp-in-depth-confusion-between-stateless-stateful-and-authentication

  • Can we call a bdc from a report program?

    hi
    Can we call a bdc from a report program?
    Thanks
    Rama

    Hello,
    Yes..
    Check this example:
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
                      RS_SELFIELD TYPE SLIS_SELFIELD.
      DATA : L_EBELN TYPE EKPO-EBELN,
             L_EBELP TYPE EKPO-EBELP.
      DATA : L_DATE1 TYPE SY-DATUM,
             L_DATE2 TYPE SY-DATUM,
             L_YEAR(4),
             L_MONTH(2),
             L_DATE(2).
      DATA: L_AMOUNT1 LIKE RK40C-WTGBTR.
      DATA: L_POSID_OLD TYPE PS_POSID.
      DATA: L_POSID_NEW TYPE PS_POSID.
      DATA: LS_COBK  LIKE COBK.
      DATA: LT_ITEMS    LIKE RK40C OCCURS 0 WITH HEADER LINE,
            LT_COEP     LIKE COEP  OCCURS 0 WITH HEADER LINE,
            LT_COEPL    LIKE COEPL OCCURS 0 WITH HEADER LINE,
            LT_COEPR    LIKE COEPR OCCURS 0 WITH HEADER LINE,
            LT_MESG     LIKE MESG  OCCURS 0 WITH HEADER LINE.
      DATA: LV_NUM TYPE POSNR_ACC VALUE '1'.
      DATA: CD_SEND_REC_REL LIKE COHEADER-SEND_REC_REL,
            LD_STATUS LIKE RK23F-STATUS.
      DATA: L_DYNNR LIKE FELD-DYNNR.
      CLEAR : L_DATE,L_DATE1,L_DATE2,L_YEAR,L_MONTH.
      L_DATE1 = SY-DATUM.
      L_YEAR = L_DATE1(4).
      L_MONTH = L_DATE1+4(2).
      L_DATE = L_DATE1+6(2).
      CONCATENATE L_DATE L_MONTH L_YEAR INTO L_DATE2 .
      CASE R_UCOMM.
        WHEN '&IC1'.   "doubleclick
          CHECK RS_SELFIELD-FIELDNAME = 'EBELN'.
          READ TABLE G_T_FINAL INDEX RS_SELFIELD-TABINDEX.
          IF SY-SUBRC = 0.
            READ TABLE G_T_TEMP WITH KEY LOGNUM = G_T_FINAL-LOGNUM.
            IF SY-SUBRC = 0.
              MESSAGE I899(KB) WITH TEXT-004.
            ELSE.
              CLEAR : L_EBELN,L_EBELP,LS_COBK,LT_ITEMS,G_T_BDC,G_T_MESSAGE,
                      CD_SEND_REC_REL,LD_STATUS.
              REFRESH: LT_ITEMS,G_T_BDC,G_T_MESSAGE.
              SET PARAMETER ID 'BES' FIELD G_T_FINAL-EBELN.
              GET PARAMETER ID 'BES' FIELD L_EBELN.
              SET PARAMETER ID 'BSP' FIELD G_T_FINAL-EBELP.
              GET PARAMETER ID 'BSP' FIELD L_EBELP.
              SORT G_T_FINAL BY EBELN EBELP.
              READ TABLE G_T_FINAL WITH KEY EBELN = L_EBELN
                                            EBELP = L_EBELP
                                            BINARY SEARCH.
              IF SY-SUBRC = 0.
                LS_COBK-KOKRS = G_T_FINAL-KOKRS.
                LS_COBK-GJAHR = SY-DATUM+0(4).
                LS_COBK-VRGNG = 'RKU1'.
                LS_COBK-PERAB = SY-DATUM+4(2).
                LS_COBK-PERBI = SY-DATUM+4(2).
                LS_COBK-BLDAT = SY-DATUM.
                LS_COBK-BUDAT = SY-DATUM.
                LS_COBK-CPUDT = SY-DATUM.
                LS_COBK-USNAM = SY-UNAME.
                LS_COBK-WSDAT = SY-DATUM.
                LS_COBK-KURST = 'M'.
                LS_COBK-VARNR = '05SAP'.
                LS_COBK-KWAER = G_T_FINAL-WAERS.
                LS_COBK-CPUTM = SY-UZEIT.
                CLEAR : L_POSID_OLD,L_POSID_NEW.
                CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'
                     EXPORTING
                          INPUT  = G_T_FINAL-POSID_NEW
                     IMPORTING
                          OUTPUT = L_POSID_NEW.
                CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'
                     EXPORTING
                          INPUT  = G_T_FINAL-POSID_OLD
                     IMPORTING
                          OUTPUT = L_POSID_OLD.
                L_AMOUNT1 = G_T_FINAL-AMOUNT.
                LT_ITEMS-ZLENR = LV_NUM.
                LT_ITEMS-EPSPNR = L_POSID_NEW.
                LT_ITEMS-SPSPNR = L_POSID_OLD.
                LT_ITEMS-KSTAR  = G_T_FINAL-KSTAR.
                LT_ITEMS-WAERS  = G_T_FINAL-WAERS.
                LT_ITEMS-WTGBTR = L_AMOUNT1.
                LT_ITEMS-WKGBTR = L_AMOUNT1.
                APPEND LT_ITEMS.
                CLEAR: LT_ITEMS.
    * For reposting the Cost
                CHECK NOT LT_ITEMS[] IS INITIAL.
                CALL FUNCTION 'K40C_COBK_CHECK_POST'
                     CHANGING
                          ITCOBK                  = LS_COBK
                     EXCEPTIONS
                          PERIOD_BLOCKED          = 1
                          EXTERNAL_NUMBER_MISSING = 2
                          ERROR_OCCURED           = 3.
                IF SY-SUBRC IS INITIAL.
                  CALL FUNCTION 'K40C_DOCUMENT_LINE_CHECK'
                       EXPORTING
                            DOC_HEADER      = LS_COBK
                            IGNORE_WARNINGS = 'X'
                       TABLES
                            DOC_ITEMS       = LT_ITEMS.
    *...Create Tables for database
                  CALL FUNCTION 'K40C_DOCUMENT_CREATE'
                       EXPORTING
                            DOC_HEADER = LS_COBK
                       TABLES
                            DOC_ITEMS  = LT_ITEMS
                            ITCOEP     = LT_COEP
                            ITCOEPL    = LT_COEPL
                            ITCOEPR    = LT_COEPR.
                  CALL FUNCTION 'K40C_DOCUMENT_POST'
                       TABLES
                            ITCOEP     = LT_COEP
                            ITCOEPL    = LT_COEPL
                            ITCOEPR    = LT_COEPR
                       CHANGING
                            DOC_HEADER = LS_COBK.
                ENDIF.
              ENDIF.
              IF SY-SUBRC = 0.
                GET PARAMETER ID 'KBXXN_P_VAR_RKU1' FIELD CD_SEND_REC_REL.
                GET PARAMETER ID 'KBXX_START_DYNPRO' FIELD LD_STATUS.
                IF CD_SEND_REC_REL IS INITIAL AND LD_STATUS IS INITIAL.
                  CLEAR L_DYNNR.
                  L_DYNNR = '1220'.
                  PERFORM BDC_DYNPRO      USING 'SAPLK23F1' '1200'.
                  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                                'COHEADER-SEND_REC_REL'.
                  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                                '=PVAR'.
                  PERFORM BDC_FIELD       USING 'COHEADER-SEND_REC_REL'
                                                '05SAP'.
                  PERFORM BDC_FIELD       USING 'RK23F-STATUS'
                                                'L'.
                  PERFORM BDC_FIELD       USING 'COHEADER-BLDAT'
                                                L_DATE2.
                  PERFORM BDC_FIELD       USING 'COHEADER-BUDAT'
                                                L_DATE2.
                  PERFORM BDC_FIELD       USING 'COHEADER-PERIO'
                                                L_MONTH.
                  PERFORM BDC_DYNPRO      USING 'SAPLK23F1' '1200'.
                  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                                'RK23F-STATUS'.
                  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                                '=LISI'.
                  PERFORM BDC_FIELD       USING 'COHEADER-SEND_REC_REL'
                                                '05SAP'.
                  PERFORM BDC_FIELD       USING 'RK23F-STATUS'
                                                'S'.
                  PERFORM BDC_FIELD       USING 'COHEADER-BLDAT'
                                                L_DATE2.
                  PERFORM BDC_FIELD       USING 'COHEADER-BUDAT'
                                                L_DATE2.
                  PERFORM BDC_FIELD       USING 'COHEADER-PERIO'
                                                L_MONTH.
                  PERFORM FILL_BDC_SCREEN USING L_DYNNR L_DATE2 L_MONTH.
                ENDIF.
                IF CD_SEND_REC_REL EQ '05SAP' AND LD_STATUS EQ 'S'.
                  CLEAR L_DYNNR.
                  L_DYNNR = '1220'.
                  PERFORM FILL_BDC_SCREEN USING L_DYNNR L_DATE2 L_MONTH.
                ELSEIF CD_SEND_REC_REL EQ '05SAP' AND LD_STATUS EQ 'L'.
                  CLEAR L_DYNNR.
                  L_DYNNR = '1220'.
                  PERFORM BDC_DYNPRO      USING 'SAPLK23F1' L_DYNNR.
                  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                                'RK23F-STATUS'.
                  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                                '=LISI'.
                  PERFORM BDC_FIELD       USING 'COHEADER-SEND_REC_REL'
                                                '05SAP'.
                  PERFORM BDC_FIELD       USING 'RK23F-STATUS'
                                                'S'.
                  PERFORM BDC_FIELD       USING 'COHEADER-BLDAT'
                                                L_DATE2.
                  PERFORM BDC_FIELD       USING 'COHEADER-BUDAT'
                                                L_DATE2.
                  PERFORM BDC_FIELD       USING 'COHEADER-PERIO'
                                                L_MONTH.
                  PERFORM FILL_BDC_SCREEN USING L_DYNNR L_DATE2 L_MONTH.
                ELSEIF CD_SEND_REC_REL NE '05SAP' AND LD_STATUS EQ 'S'.
                  CASE CD_SEND_REC_REL.
                   WHEN '01SAP' OR '02SAP' OR '04SAP' OR '08SAP' OR '09SAP'.
                      CLEAR L_DYNNR.
                      L_DYNNR = '1220'.
                    WHEN '03SAP' OR '07SAP'.
                      CLEAR L_DYNNR.
                      L_DYNNR = '1230' .
                    WHEN '06SAP'.
                      CLEAR L_DYNNR.
                      L_DYNNR = '1210'.
                    WHEN '10SAP'.
                      CLEAR L_DYNNR.
                      L_DYNNR = '1270'.
                  ENDCASE.
                  PERFORM BDC_DYNPRO      USING 'SAPLK23F1' L_DYNNR.
                  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                                'COHEADER-SEND_REC_REL'.
                  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                                '=PVAR'.
                  PERFORM BDC_FIELD       USING 'COHEADER-SEND_REC_REL'
                                                '05SAP'.
                  PERFORM BDC_FIELD       USING 'RK23F-STATUS'
                                                'S'.
                  PERFORM BDC_FIELD       USING 'COHEADER-BLDAT'
                                                L_DATE2.
                  PERFORM BDC_FIELD       USING 'COHEADER-BUDAT'
                                                L_DATE2.
                  PERFORM BDC_FIELD       USING 'COHEADER-PERIO'
                                                L_MONTH.
                  PERFORM BDC_FIELD       USING 'RK23F-WAERS'
                                                'EUR'.
                  PERFORM FILL_BDC_SCREEN USING L_DYNNR L_DATE2 L_MONTH.
                ELSEIF CD_SEND_REC_REL NE '05SAP' AND LD_STATUS EQ 'L'.
                  CASE CD_SEND_REC_REL.
                   WHEN '01SAP' OR '02SAP' OR '04SAP' OR '08SAP' OR '09SAP'.
                      CLEAR L_DYNNR.
                      L_DYNNR = '1220'.
                    WHEN '03SAP' OR '07SAP'.
                      CLEAR L_DYNNR.
                      L_DYNNR = '1230' .
                    WHEN '06SAP'.
                      CLEAR L_DYNNR.
                      L_DYNNR = '1210'.
                    WHEN '10SAP'.
                      CLEAR L_DYNNR.
                      L_DYNNR = '1270'.
                  ENDCASE.
                  PERFORM BDC_DYNPRO      USING 'SAPLK23F1' '1200'.
                  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                                'COHEADER-SEND_REC_REL'.
                  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                                '=PVAR'.
                  PERFORM BDC_FIELD       USING 'COHEADER-SEND_REC_REL'
                                                '05SAP'.
                  PERFORM BDC_FIELD       USING 'RK23F-STATUS'
                                                'L'.
                  PERFORM BDC_FIELD       USING 'COHEADER-BLDAT'
                                                L_DATE2.
                  PERFORM BDC_FIELD       USING 'COHEADER-BUDAT'
                                                L_DATE2.
                  PERFORM BDC_FIELD       USING 'COHEADER-PERIO'
                                                L_MONTH.
                  PERFORM BDC_DYNPRO      USING 'SAPLK23F1' '1200'.
                  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                                'RK23F-STATUS'.
                  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                                '=LISI'.
                  PERFORM BDC_FIELD       USING 'COHEADER-SEND_REC_REL'
                                                '05SAP'.
                  PERFORM BDC_FIELD       USING 'RK23F-STATUS'
                                                'S'.
                  PERFORM BDC_FIELD       USING 'COHEADER-BLDAT'
                                                L_DATE2.
                  PERFORM BDC_FIELD       USING 'COHEADER-BUDAT'
                                                L_DATE2.
                  PERFORM BDC_FIELD       USING 'COHEADER-PERIO'
                                                L_MONTH.
                  PERFORM FILL_BDC_SCREEN USING L_DYNNR L_DATE2 L_MONTH.
                ENDIF.
                CALL TRANSACTION 'KB11N' USING G_T_BDC MODE G_MODE MESSAGES
                                                          INTO G_T_MESSAGE.
                IF NOT G_T_MESSAGE[] IS INITIAL.
                  READ TABLE G_T_MESSAGE WITH KEY MSGTYP = 'S'.
                  IF SY-SUBRC = 0.
               DELETE FROM BALHDR WHERE LOGNUMBER = G_T_FINAL-LOGNUM    AND
                                           OBJECT = G_T_FINAL-OBJECT    AND
                                            SUBOBJECT = G_T_FINAL-SUBOBJECT.
                    COMMIT WORK.
                    G_T_TEMP = G_T_FINAL.
                    APPEND G_T_TEMP.
                  ENDIF.
                ENDIF.
              ENDIF.
            ENDIF.
            CLEAR G_T_MESSAGE.
            REFRESH G_T_MESSAGE.
    *refresh g_t_bdc.
            CLEAR G_T_BDC.
            REFRESH G_T_BDC.
          ENDIF.
      ENDCASE.
    ENDFORM.                    " USER_COMMAND
    Vasanth

  • WPS1 using BDC table

    Hi,
    Currently i have a program that call tcode WPS1 via BSP (internet explorer , ITS), i manage to pass data into WPS1 via BSP page using BDC and everything seem fine, but problem occur when i try to create a new revision at the WPS1 program.
    Some how the popup window that allow us to key in Planning Plant and Revision Type seem to be not working. When i try to press F4 to retrieve the list of Planning Plant, it doesn't show the list. The problem doesn't occur when we call WPS1 without using BDC data.
    the code is looks like :
    call transaction 'WPS1' using it_bdctable mode 'E'.
    my questions are:
    1. is there any other way for me to pass data from bsp to wps1 without using bdc?
    2. is there any other way to fix the issue mention above when i using bdc data?
    Thank you.

    Also, if you look inside the function module, you can go to any section of the sapscript form.  Just use the appropriate component in your call, the default is HEADER.
    Code from the EDIT_FORM function module
      IF COMPONENT <> 'HEADER'       AND
         COMPONENT <> 'PARAGRAPH'    AND
         COMPONENT <> 'STRING'       AND
         COMPONENT <> 'PAGE'         AND
         COMPONENT <> 'WINDOW'       AND
         COMPONENT <> 'PAGE_WINDOW'  AND
         COMPONENT <> 'LAYOUT'       AND
         COMPONENT <> 'DOCUMENTATION'.
    Regards,
    Rich Heilman

  • BDC for VL09 ( In specified date)

    Hi experts,
    I am trying to make BDC program to reverse delivery in specified date, but when I record using SHDB it do not display reversal date option while in normal use it display.
    Is there any other way to reverse deliveries in specified date.
    any suggesation will be appreciable.
    Regards
    Rajiv singh.

    look at note [156915|https://websmp230.sap-ag.de/sap(bD1kZSZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=156915&nlang=EN&smpsrv=https%3a%2f%2fwebsmp204%2esap-ag%2ede].

  • How can I open a PDF stored in IXOS and then display it in a BSP

    Hello gurus,
    I have created a PDF icon and an onclick action to open a pdf, that displays on every row of an assignment block in the actions column, but I do not know the technical process to determine how to get a PDF from the IXOS system from the line selected. (even if I know it depends on an ID attribute of that assignment block) I want to to call a transaction launcher with the url for the pdf in the IXOS that has an ID that identifies which line in the assignment block the user has clicked the pdf icon for (does that make sense?)
    Therefore, I am assuming the PDF should correspond to the relance ID of the row in the assignment block, but I would like more information as per the business logic involved in able to achieve the desired results for this particular specification. I already confirmed that the XURL or any other attribute in the BOL object does not contain the URL to use for this. I have looked at the class I was told that it may contain the required business logic for determining which PDF in IXOS to fetch for a particular row, and I am currently trying to reverse engineer the logic through looking at other code and using the debugger, but so far I haven'T had much luck.
    Here are some questions I have now for the functional side in the meantime:
    1) Can we fetch the PDF in IXOS for each line of an assignment block?
    2) Which URL should I call with the transaction launcher? a URL link to the PDF on the IXOS system??
    3) Do we have to configure a transaction in the IMG to be launched?
    4) Do we have to create a logical link there that I will make dynamic to call the right PDF for each table line? 
    5) Are there any existing examples of this or a similar functionality/ logic that I could refer to, preferably in CRM 7 WebUI?
    6) Do you have any code to just display a PDF in a new window? Or prompt a download?
    One possible way I thought of would be for me to have a logical link defined in the IMG, that I could call passing it different attributes (eg. some object id, etc) and then return the PDF and display it in the UI in a new browser window by itself. Alternatively, we can just prompt a download. What do you think would be the optimal behaviour here?
    Please do not hesitate to propose any potential solution. Any partial answers/ links to wikis/ other threads, anything would be much appreciated.
    Thank you in advance.
    Best regards,
    Jonathan Laplante

    Hi,
    I partially answered your question in another posting but I feel that you´re in the wrong forum for your problem. This is for BSP development and you talk about CRM.

  • Any ideas on a nice BSP view pretty printer?

    Hi there,
    I am wondering whether somebody already tried to extend the SAP standard pretty printer by an own functionality which fits better for pages with mixed content, containing not only BSP-elements but also HTML-tags.
    The standard pretty printer considers everything as plain text which is not a BSP-element and leaves it unaltered. Only BSP-elements are arranged according to their tree structure.
    This produces ugly results for pages with mixed content.
    1.) Requirement
    A Pretty Printer for HTML-based BSP views should cover the following:
    (a) HTML-Tags and BSP-elements together form the chain. As in following example:
    <z:table table_id="testTab" binding="//test/gt_test" rows="5">
      <z:tableBody position="top">
        <colgroup>
          <col width="4%">
          <col width="96%">
        </colgroup>
      </z:tableBody>
      <z:column name="type" header="<%=zcl_bsp_util=>dtel_text_s('EDI_TTYP')%>"
                listPos="10"/>
      <z:column name="text" listPos="20"></z:column>
    </z:table>
    (b) Certain HTML formatting tags like I, B, etc. should not be added to the stack but be treated inline.
    (c) HTML-attribute names should be converted to lower case, the attribute values should be quoted.
    (d) Like for BSP-elements, there should be a threshold after which the attributes should appear in separate lines. Instead of a certain maximum "number of attributes", this could also be a maximum number of characters per line.
    (e) Scripting Tags (<% ... %>) should start at a new line, if the content contains new-lines.
    (f) Evaluation Scripting (<%= ... %>) should be inline, if they are contained within text nodes (and not within HTML oder BSP element nodes).
    (g) The Pretty Printer should be parametrizable (with parameters like indent-depth,... ).
    2.) Exits?
    Of course, one could always use an external HTML editor and write an add-on for that editor which produces the desired result. Or one could take the view content into the clipboard, paste it into a plain text editor like UltraEdit or TextPad which allows external commands, apply an external, self-written pretty printer to it and then paste the result back into the View. But it would be easier to use the "Pretty Printer" button directly to get the result. Therefore the question arises at which point the standard Pretty Printer Functionality could be modified or extended.
    I didn't find an exit. But the pretty-print itself is doubly-decoupled in the standard which minimizes the number of points where an extension has to be made:
    2.a) First decoupling point: The Fcode handler method pretty_printer_ext( ) in cl_o2_page is calling
    dynamically a method in cl_o2_co2_processor:
    * call pretty printer
      create object pp type ('CL_O2_CO2_PROCESSOR').
      appl_str = me->pagekey-applname.
      page_str = me->pagekey-pagekey.
      try.
          CALL METHOD pp->('PRETTY_PRINT')
            EXPORTING
              indent              = 2
              ATTRIBUTE_NORMALIZE = 'X'
              ATTRIBUTE_THRESHOLD = 2
              BSP_UNFORMATTED     = source
              appl                = appl_str
              page                = page_str
            IMPORTING
              test_ok             = test_ok
              BSP_FORMATTED       = pp_source.
        catch cx_o2_co2_exception into o2ex.
    2.b) Second decoupling point:
    The method pretty_print() of class cl_o2_co2_processor (fancy names, by the way. It seems that many former chemistry students had joined the BSP team ),
    there is a second delegation, to a local class, as follows:
      data pretty type ref to LCL_BSP_PRETTY_PRINT.
      pretty = LCL_BSP_PRETTY_PRINT=>getInstance( processor = me ).
    The real logic for doing the Pretty Print, finally, is performed in this local class.
    3.) Implementation.
    Since, up to my knowledge, there is no HTML parser in the ABAP world,
    the implementation could be based on existing HTML Parsers, like the Perl module Parser::HTML, or the Java package http://htmlparser.sourceforge.net/ . The pretty printer could then be called as external OS command.
    Are there any ideas out there? Or is there somebody who already worked in this direction?
    Regards,
    Rüdiger

    For those who are interested. I found out that the Dave Ragget's classic "HTML Tidy" (see <a href="http://tidy.sourceforge.net/">http://tidy.sourceforge.net/</a> )  is available in ABAP! There is a class CL_HTMLTIDY (at least here in my SAP_BASIS 700 system) which wraps calls of HTML Tidy by kernel modules.
    The class is undocumented, but there are 2 OSS notes of this year for it, so it might well be that it is alive.
    HTML Tidy can surely not directly be used for Pretty Printing BSP views, but for designing test cases or for doing things like HTML parsing, it might be a helpful tool.

  • Error while running a BDC for the Transaction F-02

    Hi,
           I'm getting an error <b><i>"Parking not possible during Batch Input"</i></b> while running a BDC for the transaction F-02.
           When i click on the error message it displays the message [b<i>]"In Customizing, you can control whether an error message is issued."</b></i>
            How to solve this issue?.
            Waiting for ur replies.........
    Regards
    N.Senthil

    Hi,
    When you are doing the recording in SHDB, and in the same screen where the TCODE to be recorded is given, there are options that you can choose called "Recording Parameters"...Select the checkbox which says "Not a Batch Input Session", this will set the sy-binpt variable to " "(in a recording by default it is "X")...and you will not get this error...
    Also make sure while writing the BDC program to make use of the "bdc options" parameter which has this property to switch of sy-binpt...
        Refer below theard for sample bdc code for f-02.
    https://forums.sdn.sap.com/click.jspa?searchID=5126766&messageID=1538409
    Regards

  • Error in using PERFORM in eventhandler in a BSP Application.

    Hi All,
    Can we use Subroutines in BSP applications?
    If yes then please help me with syntax .
    Best Regards,
    Anubhav.
    Edited by: Anubhav Jain on Dec 20, 2007 10:52 PM

    You can call subroutine with below Synatx:
    DATA: progname(20) TYPE C VALUE 'YTESTINCLUDE' .
    PERFORM your_perform_name IN PROGRAM (progname) IF FOUND.
    "where your_perform_name is the form within the include program YTESTINCLUDE[/code]
    Raja T
    Edited by: Raja Thangamani on Dec 20, 2007 4:58 PM

  • Problem with index of numbers in BSP Front end

    Hello All,
    I am facing the below problem. Request your help.
    Scenario: When I am trying to add the projects in the Front end , I am facing the problem with the index of numbering of the projects.
    Example: If I am adding 6 projects ( at the max only 4 on each page i-e there are 2 pages ), then the index is wrongly numbered and the arrow (for direction of the pages) are wrongly displayed. The direction of the arrow is pointed to the next page rather pointing to the previous page and the index of numbering of the pages is wrong.
    Request you to please suggest if this is any code fault in the table maintainance activity in the backend (BSP).

    Hi Irina,
    If you mean the number range is skipping 10 numbers in between runs then its because of the buffering in the number range.
    To avoid the buffer influencing the number range, pass
    'X' to the function module parameter: IGNORE_BUFFER.
    This should resolve the problem.
    Cheers,
    Aditya

Maybe you are looking for