Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Email SapScript : Question on READ_OTF_FROM_MEMORY

Former Member
0 Likes
1,693

Hi All,

I'm trying to extend my order print program in order to enable the sending by mail of a SapScript.

So :

I'm using :

READ_OTF_FROM_MEMORY

Then

CONVERT_OTF_2_PDF

And

SO_NEW_DOCUMENT_ATT_SEND_API1

( With a little more code ! ).

In debug mode, I can see that the return code of

READ_OTF_FROM_MEMORY

is <b>1</b> :

*-- Read OTF from memory
  CALL FUNCTION 'READ_OTF_FROM_MEMORY'
    EXPORTING
      memory_key   = nast-objky
    TABLES
      otf          = lt_otf
    EXCEPTIONS
      memory_empty = 1
      OTHERS       = 2.

Which means "memory empty" so I can't retrieve my form.

I don't understand why ?

Thx in advance,

Regards,

Erwan

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,122

Hi Erwan,

It means the memory id is indeed empty.

Why do you want to get the otf, when it is readily available in the close_form tables parameters?

Use that otf data and send to the subsequent processing.

Regards,

Ravi

Hi All,

I'm trying to extend my order print program in order to enable the sending by mail of a SapScript.

So :

I'm using :

READ_OTF_FROM_MEMORY

Then

CONVERT_OTF_2_PDF

And

SO_NEW_DOCUMENT_ATT_SEND_API1

( With a little more code ! ).

In debug mode, I can see that the return code of

READ_OTF_FROM_MEMORY

is <b>1</b> :

*-- Read OTF from memory
  CALL FUNCTION 'READ_OTF_FROM_MEMORY'
    EXPORTING
      memory_key   = nast-objky
    TABLES
      otf          = lt_otf
    EXCEPTIONS
      memory_empty = 1
      OTHERS       = 2.

Which means "memory empty" so I can't retrieve my form.

I don't understand why ?

Thx in advance,

Regards,

Erwan

5 REPLIES 5
Read only

Former Member
0 Likes
1,122

Hi ,

Comment out memory key parameter form ur function

module and try.

EXPORTING

  • memory_key = nast-objky

TABLES

otf = lt_otf

EXCEPTIONS

memory_empty = 1

OTHERS = 2.

Regards

Amole

Read only

0 Likes
1,122

Hum...

No it doesn't work !

return code is always '1'.

Other idea ?

Thx a lot

Read only

Former Member
0 Likes
1,122

hi Check sample code ::

FUNCTION zisa_container_pack_pdf .
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(DELIVERY) LIKE  BAPIVBELN-VBELN
*"  TABLES
*"      IT_PDF STRUCTURE  TBL1024
*"      RETURN STRUCTURE  BAPIRET2
*"----------------------------------------------------------------------
  DATA: lt_pdfdata LIKE TABLE OF tline WITH HEADER LINE.
 <b> DATA: lt_otf    TYPE STANDARD TABLE OF itcoo WITH HEADER LINE,</b>
        lt_doctab TYPE STANDARD TABLE OF docs WITH HEADER LINE,
        lt_otfdata TYPE STANDARD TABLE OF itcoo WITH HEADER LINE.
  DATA: x_nast LIKE  nast,  "Message Status
        x_tnapr LIKE tnapr. "Processing programs for output.
  DATA : len TYPE i.

*-- Calling the Subroutine Entry

*-- Get all the details from NAST table
*-- SALESDOCUMENTIN : Sales Document number (Importing parameter)
  SELECT * UP TO 1 ROWS  INTO nast FROM nast WHERE kappl = 'V2' AND
                                       objky = delivery AND
                                       kschl = 'ZDSP' AND
                                       spras = sy-langu.
  ENDSELECT.


  IF sy-subrc = 0.
*-- Get all the details from TNAPR table
*-- 'ZDSP' : Output type defined for the Sales order
*-- '1' : Transmission medium : Printer
    SELECT SINGLE * INTO tnapr
    FROM tnapr WHERE kschl = 'ZDSP' AND
                              nacha = '1' AND
                              kappl = 'V2'.

    IF sy-subrc = 0.
*-- Populate the return code as per the standard driver program
      return_code = 999.
      us_screen = 'X'.
*-- Populate the Transaction code in the NAST structure
*-- 'VL03N' : Sales order Display transaction
      <b>nast-tcode = 'VL03N'.</b>
      PERFORM entry IN PROGRAM zisa_vaddn01_fm USING nast
                                                 tnapr
                                                 return_code
                                                 us_screen.
    ELSE.
      return-type = 'E'.
      return-message = 'No Form found in the TNAPR table'.
      APPEND return.
      CLEAR  return.
    ENDIF.

*-- Read OTF from memory
   <b> CALL FUNCTION 'READ_OTF_FROM_MEMORY'
         EXPORTING
              memory_key   = nast-objky
         TABLES
              otf          = lt_otf
         EXCEPTIONS
              memory_empty = 1
              OTHERS       = 2.</b>
    IF sy-subrc = 0.
*-- Convert the OTF data to PDF data
      CALL FUNCTION 'CONVERT_OTF_2_PDF'
           EXPORTING
                use_otf_mc_cmd         = 'X'
           IMPORTING
                bin_filesize           = v_bin
           TABLES
                otf                    = lt_otf
                doctab_archive         = it_doctab
                lines                  = lt_pdfdata
           EXCEPTIONS
                err_conv_not_possible  = 1
                err_otf_mc_noendmarker = 2
                OTHERS                 = 3.


      IF sy-subrc <> 0.
        return-type = 'E'.
        return-message =
          'An error occured in Converting OTF Data to PDF Data'.
        APPEND return.
        CLEAR  return.
      ELSE.

*       Converting pdf data to raw data
        CALL FUNCTION 'QCE1_CONVERT'
             TABLES
                  t_source_tab         = lt_pdfdata
                  t_target_tab         = it_pdf
             EXCEPTIONS
                  convert_not_possible = 1
                  OTHERS               = 2.

        LOOP AT  it_pdf.
          len = len + STRLEN( it_pdf ).
        ENDLOOP.
*         if ( v_bin = len ).
*         endif.
      ENDIF.
    ELSE.
      return-type = 'E'.
      return-message =
        'An error occured in retrieving OTF Data from Memory'.
      APPEND return.
      CLEAR  return.
    ENDIF.
  ELSE.
    return-type = 'E'.
    return-message = 'No NAST entry found with this Sales Order'.
    APPEND return.
    CLEAR  return.
  ENDIF.
ENDFUNCTION.

Regards

Ashok P

Read only

Former Member
0 Likes
1,123

Hi Erwan,

It means the memory id is indeed empty.

Why do you want to get the otf, when it is readily available in the close_form tables parameters?

Use that otf data and send to the subsequent processing.

Regards,

Ravi

Read only

0 Likes
1,122

Hi Ravi,

You are right.

Thx a lot

Erwan