Quantcast
Channel: SCN : All Content - All Communities
Viewing all articles
Browse latest Browse all 8705

Multiple pdf attachment into single email

$
0
0

HI,

i have read almost all the thread related to multiple pdf attachment  on scn but not get proper solution .

i want to send two PDF as an attachment in single email  first  attachment is smartforms output converted into pdf  and second pdf  is output of function module  internal table ( it in pdf format already ).

2 attachment are coming correctly , but in

smartform pdf output coming correctly as an attachment in email but the other one (function module pdf ) is coming blank ( i am not able differentiate between 2  & fill the data for second attachment ).

i am using  SO_NEW_DOCUMENT_ATT_SEND_API1 .

i paste the code for the reference please, go through it if need.

 


REPORT  zfi_cust_bal_conf_letter_multi.

TABLES: kna1,knvv.

TYPE-POOLS:slis.

*ALV DATA DECLARATIONS
DATA: it_fieldcatalog
TYPE  slis_t_fieldcat_alv,
wa_fieldcatalog
TYPE  slis_fieldcat_alv ,
gd_layout   
TYPE slis_layout_alv,
g_variant
LIKE disvariant.
DATA : g_save(1) TYPE c,
g_exit(1)
TYPE c,
gx_variant
LIKE disvariant,
gv_sr
TYPE i.

TYPES : BEGIN OF ty_knvv,
kunnr
TYPE knvv-kunnr,
vkorg
TYPE knvv-vkorg,
vtweg
TYPE knvv-vtweg,
spart
TYPE knvv-spart,
bzirk
TYPE knvv-bzirk,
vkgrp
TYPE knvv-vkgrp,
END OF ty_knvv.

TYPES : BEGIN OF ty_s_kunnr,
kunnr1
TYPE knvv-kunnr,
END OF ty_s_kunnr.



DATA : r_kunnr TYPE RANGE OF kna1-kunnr,
wa_r_kunnr
LIKE LINE OF  r_kunnr.

DATA : it_knvv  TYPE STANDARD TABLE OF ty_knvv,
wa_knvv 
TYPE ty_knvv.

DATA : s_kunnr1 TYPE TABLE OF ty_s_kunnr,
wa_s_kunnr1
TYPE ty_s_kunnr.

DATA : it_opng_bal TYPE  zzbal_opng_bal_tt,
it_opng_bal1
type standard table of ZZBAL_OPNG_BAL_LT,
wa_opng_bal1
type ZZBAL_OPNG_BAL_LT,
wa_opng_bal
TYPE zzbal_opng_bal_lt.

data : ld_sender_address LIKE  soextreci1-receiver,
ld_sender_address_type
LIKE  soextreci1-adr_typ.

*DATA : BEGIN OF itab_data OCCURS 0 ,
*       hkont LIKE bsis-hkont,
*       kunnr LIKE bsid-kunnr,
*       yymm(6) TYPE c,
*       budat LIKE bsis-budat,
*       bldat LIKE bsis-bldat,
*       belnr LIKE bsis-belnr,
*       buzei LIKE bsis-buzei,
*       blart LIKE bsis-blart,
*       shkzg LIKE bsis-shkzg,
*       gsber LIKE bsis-gsber,
*       xblnr LIKE bsis-xblnr,
*       dmbtr LIKE bsis-dmbtr,
*       aufnr LIKE bsis-aufnr,
*       kostl LIKE bsis-kostl,
*       sgtxt LIKE bsis-sgtxt,
*       bukrs LIKE bsis-bukrs,
*       gjahr LIKE bsis-gjahr,
*       stblg LIKE bkpf-stblg,
*       stjah LIKE bkpf-stjah,
*       revdt(10)  TYPE c,
*       usnam LIKE bkpf-usnam,
*       chqno(10)  TYPE c,
*       chqdt(10)  TYPE c,
*       vbeln LIKE vbrp-vbeln,
*       fkimg LIKE vbrp-fkimg,
*       zuonr  LIKE bseg-zuonr,
*       umskz LIKE bsid-umskz,
*       exnum  LIKE j_1iexchdr-exnum.
*DATA : END OF itab_data.

DATA : BEGIN OF itab_vnd_optrn OCCURS 0 ,
hkont
LIKE bsid-hkont,
kunnr
LIKE bsid-kunnr,
umskz
LIKE bsid-umskz,
dmbtr
LIKE bsid-dmbtr.
DATA : END OF itab_vnd_optrn.

TYPES : BEGIN OF ty_final ,
mandt
type mandt,
kunnr
TYPE kna1-kunnr,
name1
TYPE kna1-name1,
vkorg
TYPE knvv-vkorg,
vtweg
TYPE knvv-vtweg,
spart
TYPE knvv-spart,
bzirk
TYPE knvv-bzirk,
vkgrp
TYPE knvv-vkgrp,
dmbtr
TYPE bsid-dmbtr,
date  TYPE knvv-erdat,
END OF ty_final.

types : BEGIN OF ty_kna1,
kunnr
TYPE kna1-kunnr,
adrnr
TYPE kna1-adrnr,
END OF ty_kna1.

types : BEGIN OF ty_adrc,
addrnumber    
TYPE adrc-addrnumber,
name1         
TYPE adrc-name1,
name2         
TYPE adrc-name2,
name3         
TYPE adrc-name3,
name4         
TYPE adrc-name4,
city1         
TYPE adrc-city1,
city2         
TYPE adrc-city2,
city_code     
TYPE adrc-city_code,
cityp_code    
TYPE adrc-cityp_code,
home_city     
TYPE adrc-home_city,
post_code1    
TYPE adrc-post_code1,
post_code2    
TYPE adrc-post_code2,
po_box        
TYPE adrc-po_box,
street        
TYPE adrc-street,
streetcode    
TYPE adrc-streetcode,
str_suppl1    
TYPE adrc-str_suppl1,
str_suppl2    
TYPE adrc-str_suppl2,
str_suppl3    
TYPE adrc-str_suppl3,
location      
TYPE adrc-location,
building      
TYPE adrc-building,
floor          TYPE adrc-floor,
country        TYPE adrc-country,
region        
TYPE adrc-region,
END OF ty_adrc.


types : BEGIN OF ty_tline,
tdformat
TYPE tline-tdformat,
tdline
TYPE tline-tdline,
END OF ty_tline.


data : wa_name1 type kna1-name1.

data : n type i,
lt_solix
type SOLIX_TAB with header line .

data : it_final type standard table of ZZSTR_CUST_BAL,
wa_final
type ZZSTR_CUST_BAL ,"with header line ,
it_adrc
type standard table of ty_adrc,
wa_adrc
type ty_adrc,
it_kna1
type standard table of ty_kna1,
wa_kna1
type ty_kna1,
it_final_expo
type ZZSTR_CUST_BAL_TT with header line,
it_adr6
type standard table of adr6,
wa_adr6
type adr6,
it_mtab_pdf
TYPE TABLE OF tline WITH HEADER LINE.
*       wa_mtab_pdf type ty_tline.

data : gv_kunnr1 type kna1-kunnr,
gv_adrnr 
type kna1-adrnr,
gv_email_add
type adr6-SMTP_ADDR.

DATA : itab_vnd_opbal LIKE itab_vnd_optrn OCCURS 0 WITH HEADER LINE.

data:   i_otf
TYPE itcoo OCCURS 0 WITH HEADER LINE,
i_tline
TYPE TABLE OF tline WITH HEADER LINE,
i_receivers
TYPE TABLE OF somlreci1 WITH HEADER LINE,
i_record
LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_record1
LIKE solisti1 OCCURS 0 WITH HEADER LINE,
* Objects to send mail.
i_objpack
LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
i_objtxt
LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_objbin
LIKE solisti1 OCCURS 10 WITH HEADER LINE,
i_reclist
LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
* Work Area declarations
wa_objhead
TYPE soli_tab,
w_ctrlop
TYPE ssfctrlop,
w_compop
TYPE ssfcompop,
wa_doc_chng
TYPE sodocchgi1,
w_data
TYPE sodocchgi1,
wa_buffer
TYPE string,
W_RETURN
TYPE SSFCRESCL,
* ” to convert from 132 to 255
* Variables declarations
v_form_name
TYPE rs38l_fnam,
v_len_in
LIKE sood-objlen,
v_len_out
LIKE sood-objlen,
v_len_outn
TYPE i,
v_lines_txt
TYPE i,
v_lines_bin
TYPE i.

DATA: C_TAB
TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB,
C_RET
TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>CR_LF.

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
*PARAMETERS : p_werks TYPE j_1iexchdr-werks DEFAULT '1101' OBLIGATORY .
PARAMETERS :  p_bukrs TYPE t001-bukrs OBLIGATORY .
SELECT-OPTIONS: s_kunnr
FOR kna1-kunnr,            "" Customer
s_vkorg
FOR knvv-vkorg OBLIGATORY, "" Sales Org.
s_vkgrp
FOR knvv-vkgrp OBLIGATORY, "" Sales Territory
s_vtweg
FOR knvv-vtweg OBLIGATORY, "" Distr. Channel
s_spart
FOR knvv-spart OBLIGATORY, "" Division
s_bzirk
FOR knvv-bzirk OBLIGATORY, "" Sales district
s_date 
FOR knvv-erdat OBLIGATORY. "" Date
""""smartforms declerations.
DATA: lf_fm_name           
TYPE rs38l_fnam.

PARAMETERS : r_alv RADIOBUTTON GROUP grp1 DEFAULT 'X',
r_email
RADIOBUTTON GROUP grp1 .
SELECTION-SCREEN END OF BLOCK blk1   .

SELECTION-SCREEN BEGIN OF BLOCK layout WITH FRAME TITLE text-002.
PARAMETERS: p_vari
LIKE disvariant-variant. " ALV Variant
SELECTION-SCREEN END OF BLOCK layout.

INITIALIZATION.
PERFORM initialize_variant  .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM f4_for_variant.
*&---------------------------------------------------------------------*
*&      Form  INITIALIZE_VARIANT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM initialize_variant .
g_save =
'A'.
CLEAR g_variant.
g_variant-report = sy-repid.
*  g_variant-variant = p_vari.
gx_variant = g_variant.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save        = g_save
CHANGING
cs_variant    = gx_variant
EXCEPTIONS
wrong_input   =
1
not_found     =
2
program_error =
3
OTHERS        = 4.
*  IF sy-subrc <> 0.
*    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
IF sy-subrc = 0.
p_vari = gx_variant-variant.
ENDIF.
ENDFORM.                   
" INITIALIZE_VARIANT
*&---------------------------------------------------------------------*
*&      Form  F4_FOR_VARIANT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f4_for_variant .
g_save =
'A'.
g_variant-report = sy-repid.

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = g_variant
i_save     = g_save
IMPORTING
e_exit     = g_exit
es_variant = gx_variant
EXCEPTIONS
not_found  =
2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S'      NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF g_exit = space.
p_vari = gx_variant-variant.
ENDIF.
ENDIF.
ENDFORM.                   
" F4_FOR_VARIANT

*----------------------------------------------------------------------*
*         :   Start of Selection                                       *
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM get_data.

PERFORM fill_data.

END-OF-SELECTION.
if r_alv eq 'X'.

PERFORM alv_fieldcatlog.
PERFORM alv_display.

elseif r_email = 'X'""""" smartform code & convert into PDF.

sort it_final by kunnr.
delete adjacent duplicates from it_final comparing all fields.

LOOP AT  it_final into wa_final.
read table it_kna1 into wa_kna1 with key kunnr = wa_final-kunnr.
if sy-subrc = 0 .
read table it_adrc into wa_adrc with key ADDRNUMBER = wa_kna1-adrnr .
if sy-subrc = 0 .
read table it_adr6 into wa_adr6 with key  ADDRNUMBER = wa_adrc-ADDRNUMBER.
if sy-subrc = 0 .

gv_adrnr = wa_kna1-adrnr.
gv_kunnr1 = wa_final-kunnr.
gv_email_add = wa_adr6-SMTP_ADDR.
endif.
endif.
endif.

*****************customer account statment rfc call *************

*****output of this is 1 st attachment for the mail as pdf
CALL FUNCTION 'ZATR_RFC_CUST_ACT_STMNT_CBCL'
EXPORTING
im_comp_code               = p_bukrs
*   IM_BUSS_AREA_LOW           =
*   IM_BUSS_AREA_HIGH          =
im_post_date_low           = s_date-low
IM_POST_DATE_HIGH          = s_date-high
*   IM_GL_ACCOUNT_LOW          =
*   IM_GL_ACCOUNT_HIGH         =
IM_CUSTOMER_LOW            = WA_FINAL-KUNNR
*   IM_CUSTOMER_HIGH           =
IM_TERITORY_LOW            = WA_FINAL-VKGRP
*   IM_TERITORY_HIGH           = s_vkgrp-high
IM_REGION_LOW              = WA_FINAL-bzirk
*   IM_REGION_HIGH             =
*   IM_ACCT_ASSG_GR_LOW        =
*   IM_ACCT_ASSG_GR_HIGH       =
*   IM_MONTH                   =
*   IM_NORMAL                  =
*   IM_SPL_GL                  =
* IMPORTING
*   STS                        =
*   EMAILID                    =
tables
*    lt_solix                   = lt
MTAB_PDF                   = it_mtab_pdf
LT_SOLIX             =  lt_solix   .

******************end of call rfc **********************

***********smartform 2nd attchment for email *********
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname                 =
'ZFI_SM_CUST_BAL_CONF_LETTER'
*   VARIANT                  = ' '
*   DIRECT_CALL              = ' '
IMPORTING
FM_NAME                  = lf_fm_name
EXCEPTIONS
NO_FORM                  =
1
NO_FUNCTION_MODULE       =
2
OTHERS                   = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

w_ctrlop-getotf    =
'X'.
w_ctrlop-no_dialog =
'X'.
w_compop-tdnoprev  =
'X'.

CALL FUNCTION lf_fm_name
EXPORTING
*   ARCHIVE_INDEX              =
*   ARCHIVE_INDEX_TAB          =
*   ARCHIVE_PARAMETERS         =
CONTROL_PARAMETERS         = w_ctrlop 
"""comment
*   MAIL_APPL_OBJ              =
*   MAIL_RECIPIENT             =
*   MAIL_SENDER                =
OUTPUT_OPTIONS             = w_compop 
""""comment
*   USER_SETTINGS              = 'X'
*wa_final                =  wa_final
*wa_adrc                        = wa_adrc
gv_kunnr1 = gv_kunnr1
IMPORTING                               """comment
*   DOCUMENT_OUTPUT_INFO       =
JOB_OUTPUT_INFO            = w_return 
"""coomment
*   JOB_OUTPUT_OPTIONS         =
*gv_kunnr1 = gv_kunnr1
*gv_adrnr  = gv_adrnr
tables
it_final                 = it_final[]
IT_SELECT               = s_date[]
it_adrc                 = it_adrc[]
*   wa_final                =  wa_final
EXCEPTIONS
FORMATTING_ERROR           =
1
INTERNAL_ERROR             =
2
SEND_ERROR                 =
3
USER_CANCELED              =
4
OTHERS                     = 5
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

i_otf[] = w_return-otfdata[].

CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format                = 'PDF'
max_linewidth         =
132
IMPORTING
bin_filesize          = v_len_in
TABLES
otf                   = i_otf
lines                 = i_tline
EXCEPTIONS
err_max_linewidth     =
1
err_format            =
2
err_conv_not_possible =
3
OTHERS                = 4.

IF sy-subrc <> 0.
ENDIF.

*********below is smartform in pdf **********1 st attchment   """this is coming correctly
LOOP AT i_tline.
TRANSLATE i_tline USING '~'.
CONCATENATE wa_buffer i_tline INTO wa_buffer.
ENDLOOP.

TRANSLATE wa_buffer USING '~'.
DO.
i_record = wa_buffer.
*      CONCATENATE C_RET i_record INTO i_record.
APPEND i_record.
SHIFT wa_buffer LEFT BY 255 PLACES.
IF wa_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
*append i_record to i_objbin.
****************rfc output for 2nd attachment **********************
LOOP AT it_mtab_pdf.
TRANSLATE it_mtab_pdf USING '~'.
CONCATENATE wa_buffer it_mtab_pdf INTO wa_buffer.
ENDLOOP.

TRANSLATE wa_buffer USING '~'.
DO.
i_record1 = wa_buffer.
*      CONCATENATE C_RET i_record INTO i_record.
APPEND i_record1.
SHIFT wa_buffer LEFT BY 255 PLACES.
IF wa_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
*append i_record1 to i_objbin.
****************end of attachment ****************************


* Attachment
REFRESH: i_reclist,
i_objtxt,
i_objbin,
i_objpack.
CLEAR :  wa_objhead.


*    i_objbin[] = i_record[].  """commented by sachin

*append i_record1 to i_objbin.
* create message body  title and description

i_objtxt =
'Dear Sir/Madam,'.
APPEND i_objtxt.
i_objtxt =
' '.
APPEND i_objtxt.
i_objtxt =
'Please Find here with Attached copy of Customer Balance Letter.'.
APPEND i_objtxt.
i_objtxt =
' '.
APPEND i_objtxt.
i_objtxt =
' '.
APPEND i_objtxt.
i_objtxt =
' '.
APPEND i_objtxt.
i_objtxt =
' '.
APPEND i_objtxt.
i_objtxt =
' '.
APPEND i_objtxt.
i_objtxt =
' '.
APPEND i_objtxt.
i_objtxt =
' '.
APPEND i_objtxt.
i_objtxt =
' '.
APPEND i_objtxt.
i_objtxt =
'PLEASE NOTE :- THIS IS AN AUTO GENERATED MAIL, PLEASE DO NOT REPLY TO THIS MAIL.'.
APPEND i_objtxt.
*    i_objtxt = 'Thanks And Regards,'.
*    APPEND i_objtxt.
*    i_objtxt = 'Sachin'.
*    APPEND i_objtxt.

DESCRIBE TABLE i_objtxt LINES v_lines_txt.
READ TABLE i_objtxt INDEX v_lines_txt.

wa_doc_chng-obj_name   =
'Customer Balance Letter'.
*    wa_doc_chng-expiry_dat = sy-datum + 10.
wa_doc_chng-obj_descr  =
'Customer Balance Letter'."""cmmented
wa_doc_chng-sensitivty =
'F'.
wa_doc_chng-doc_size   = ( v_lines_txt -
1 ) * 255 + strlen( i_objtxt ).
*# main text
* wa_doc_chng-doc_size = ( v_lines_txt - 1 ) * 255 + strlen( i_objtxt )
*.


************1st attachment content transfer *************
LOOP AT i_record .
move i_record-line to i_objbin-line.
append i_objbin.
ENDLOOP.
****************end of code ****************************
************2 nd  attachment content transfer *************
LOOP AT i_record1.
move i_record1-line to i_objbin-line.
append i_objbin.
ENDLOOP.

CLEAR i_objpack-transf_bin.
i_objpack-head_start =
1.
i_objpack-head_num   =
0.
i_objpack-body_start =
1.
i_objpack-body_num   = v_lines_txt.
i_objpack-doc_type   =
'RAW'.
APPEND i_objpack.


*    ld_sender_address      = 'sapautomail-icc@modi.com'.
*    ld_sender_address_type = 'SMTP'.



*# attachment
* (pdf-Attachments 1 & 2)
************code for 1st pdf attachment *********************
DESCRIBE TABLE i_record LINES v_lines_bin.
READ TABLE i_record INDEX v_lines_bin.
N =
1 .
i_objpack-transf_bin =
'X'.
i_objpack-head_start =
1.
i_objpack-head_num   =
1.
i_objpack-body_start = N.
*    i_objpack-doc_type   = 'RAW'.
* Länge des Attachment ermitteln
i_objpack-doc_size  = ( v_lines_bin -
1 ) * 255 + strlen( i_record ).
i_objpack-body_num  = v_lines_bin.
"""""""""""""""total number of line for the attachment 2 in OBJBIN object.
i_objpack-doc_type  =
'PDF'.
i_objpack-obj_name  =
'Customer Balance Letter'.
i_objpack-obj_descr =
'Customer Balance Letter'.
APPEND i_objpack.
CLEAR i_reclist.

************code for 2nd pdf attached *********************
DESCRIBE TABLE i_record1  LINES v_lines_bin.
READ TABLE i_record1  INDEX v_lines_bin.
N = N + v_lines_bin.
i_objpack-transf_bin =
'X'.
i_objpack-head_start = i_objpack-head_start +
1.
i_objpack-head_num   = i_objpack-body_num +
1.
i_objpack-body_start = N.
*    i_objpack-doc_type   = 'RAW'.
* Länge des Attachment ermitteln
i_objpack-doc_size  = ( v_lines_bin -
1 ) * 255 + strlen( i_record1 ).
i_objpack-body_num  = v_lines_bin. 
""""""total number of line for the attachment 2 in OBJBIN object.
*    i_objpack-body_START = N.
i_objpack-doc_type  =
'PDF'.
i_objpack-obj_name  =
'Customer Account Statment'.
i_objpack-obj_descr =
'Customer Account Statment'.
APPEND i_objpack.
CLEAR i_reclist.

***** customers email addresss
i_reclist-receiver = gv_email_add.
i_reclist-rec_type =
'U'.
i_reclist-com_type =
'INT'.
APPEND  i_reclist.
*********end *******************

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data              = wa_doc_chng
put_in_outbox              =
'X'
commit_work                =
'X'
TABLES
packing_list               = i_objpack
object_header              = wa_objhead
contents_bin               = i_objbin
contents_txt               = i_objtxt
receivers                  = i_reclist[]
EXCEPTIONS
too_many_receivers         =
1
document_not_sent          =
2
document_type_not_exist    =
3
operation_no_authorization =
4
parameter_error            =
5
x_error                    =
6
enqueue_error              =
7
OTHERS                     = 8.

IF sy-subrc EQ 0.
MESSAGE 'Mail Sent Sucessfully' TYPE 'I'.
ELSE.
MESSAGE 'Error occured in Sending the Mail' TYPE 'E'.
ENDIF.
clear : gv_kunnr1,gv_adrnr,gv_email_add.
ENDLOOP.
endif.

*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_data .
break ibm_ams.

SELECT  kunnr
vkorg
vtweg
spart
vkgrp
bzirk
FROM knvv
INTO CORRESPONDING FIELDS OF  TABLE it_knvv
WHERE kunnr IN s_kunnr
AND vkorg IN s_vkorg
AND vtweg IN s_vtweg
AND spart IN s_spart
AND vkgrp IN s_vkgrp
AND bzirk IN s_bzirk.

IF s_kunnr IS INITIAL.
LOOP AT it_knvv INTO wa_knvv  .
wa_r_kunnr-option =
'EQ' .
wa_r_kunnr-sign =
'I'.
wa_r_kunnr-low = wa_knvv-kunnr.
APPEND wa_r_kunnr TO r_kunnr.
CLEAR : wa_r_kunnr.
ENDLOOP.
ENDIF.


*CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
*  EXPORTING
*    companycodeid       = p_bukrs
*    posting_date        =
* IMPORTING
*   FISCAL_YEAR         =
**   FISCAL_PERIOD       =
**   RETURN              =
*          .


IF s_kunnr IS INITIAL.
SUBMIT z6fi011r_cust_ledger_copy
WITH p_bukrs = p_bukrs
WITH  s_budat IN s_date
WITH s_kunnr IN r_kunnr
WITH p_month = ''
EXPORTING LIST TO MEMORY
AND RETURN.
ELSE.
SUBMIT z6fi011r_cust_ledger_copy
WITH p_bukrs = p_bukrs
WITH  s_budat IN s_date
WITH s_kunnr IN s_kunnr
WITH p_month = ''
EXPORTING LIST TO MEMORY
AND RETURN.

ENDIF.
*  IMPORT itab_data FROM MEMORY ID 'BTD'.
IMPORT itab_vnd_opbal FROM MEMORY ID 'CTD'.

LOOP AT itab_vnd_opbal.
*    WA_OPNG_BAL-HKONT = itab_vnd_opbal-HKONT.
wa_opng_bal-kunnr = itab_vnd_opbal-kunnr.
wa_opng_bal-dmbtr = itab_vnd_opbal-dmbtr.
COLLECT wa_opng_bal INTO it_opng_bal.
append wa_opng_bal to it_opng_bal1.
ENDLOOP.
CLEAR wa_opng_bal .
SORT it_opng_bal BY kunnr.
sort it_opng_bal1 by kunnr.
delete it_opng_bal where kunnr is initial or dmbtr eq '0.00'.
delete it_opng_bal1 where kunnr is initial or dmbtr eq '0.00'.

if not it_opng_bal1 is initial.
select kunnr
adrnr
from   kna1
into table it_kna1
for all entries in it_opng_bal1
where kunnr = it_opng_bal1-kunnr.
endif.
if not it_kna1[] is initial.
select    addrnumber
name1
name2
name3
name4
city1
city2
city_code
cityp_code
home_city
post_code1
post_code2
po_box
street
streetcode
str_suppl1
str_suppl2
str_suppl3
location
building
floor
country
region
from adrc
into table it_adrc
for all entries in it_kna1
where ADDRNUMBER = it_kna1-adrnr.
endif.

if not it_adrc[] is initial.
select *
from adr6
into table it_adr6
for all entries in it_adrc
where ADDRNUMBER = it_adrc-ADDRNUMBER .
endif.
ENDFORM.                   
" GET_DATA
*&---------------------------------------------------------------------*
*&      Form  FILL_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FILL_DATA .

LOOP AT it_knvv into wa_knvv.
LOOP AT it_opng_bal1 into wa_opng_bal1 where kunnr = wa_knvv-kunnr.
wa_final-DMBTR = wa_final-DMBTR + wa_opng_bal1-DMBTR.
ENDLOOP.
wa_final-kunnr =  wa_opng_bal1-kunnr.
select single name1
from kna1
client specified
into wa_name1
where mandt = sy-mandt
and   kunnr = wa_final-kunnr.
wa_final-name1 = wa_name1.
wa_final-vkorg = wa_knvv-vkorg.
wa_final-vtweg = wa_knvv-vtweg.
wa_final-SPART = wa_knvv-spart.
wa_final-bzirk = wa_knvv-bzirk.
wa_final-vkgrp = wa_knvv-vkgrp.
append wa_final to it_final.
clear: wa_final, wa_name1.
ENDLOOP.

ENDFORM.                   
" FILL_DATA
*&---------------------------------------------------------------------*
*&      Form  ALV_FIELDCATLOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ALV_FIELDCATLOG .
wa_fieldcatalog-fieldname   =
'KUNNR'.
wa_fieldcatalog-seltext_m   =
'Customer Code'.
wa_fieldcatalog-col_pos     =
1.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR  wa_fieldcatalog.

*  wa_fieldcatalog-col_pos = wa_fieldcatalog-col_pos + 1.
wa_fieldcatalog-fieldname   =
'NAME1'.
wa_fieldcatalog-seltext_m   =
'Customer Name'.
wa_fieldcatalog-col_pos     =
2.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR  wa_fieldcatalog.

*  wa_fieldcatalog-col_pos = wa_fieldcatalog-col_pos + 1.
wa_fieldcatalog-fieldname   =
'VKORG'.
wa_fieldcatalog-seltext_m   =
'Sales Org.'.
wa_fieldcatalog-col_pos     =
3.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR  wa_fieldcatalog.

wa_fieldcatalog-fieldname   =
'SPART'.
wa_fieldcatalog-seltext_m   =
'Division'.
wa_fieldcatalog-col_pos     =
4.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR  wa_fieldcatalog.

wa_fieldcatalog-fieldname   =
'BZIRK'.
wa_fieldcatalog-seltext_m   =
'Sales district'.
wa_fieldcatalog-col_pos     =
6.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR  wa_fieldcatalog.

wa_fieldcatalog-fieldname   =
'VKGRP'.
wa_fieldcatalog-seltext_m   =
'Sales Territory'.
wa_fieldcatalog-col_pos     =
7.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR  wa_fieldcatalog.

wa_fieldcatalog-fieldname   =
'DMBTR'.
wa_fieldcatalog-seltext_m   =
'Cutomer Balance'.
wa_fieldcatalog-col_pos     =
8.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR  wa_fieldcatalog.
ENDFORM.                   
" ALV_FIELDCATLOG
*&---------------------------------------------------------------------*
*&      Form  ALV_DISPLAY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ALV_DISPLAY .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
I_CALLBACK_PROGRAM                = sy-repid
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME                  =
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
IS_LAYOUT                         = gd_layout
IT_FIELDCAT                       = it_fieldcatalog[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
I_SAVE                            =
'A'
IS_VARIANT                        = gx_variant
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT                          =
*   IS_REPREP_ID                      =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
TABLES
t_outtab                          = it_final[]
EXCEPTIONS
PROGRAM_ERROR                     =
1
OTHERS                            = 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDFORM.                   
" ALV_DISPLAY


Viewing all articles
Browse latest Browse all 8705

Trending Articles