Payment file duplication in target system at F110 transaction
Hi All
Payment file duplication in target system. Wherein since the Print Job was scheduled twice by user, the duplication of payment had taken place.The payment medium program u201CRFFOAVIS_FPAYMu201D is use to control the generation of duplicate payment file at automatic payment run program(F110).User needs an warning message if print job is schedule twice on same date and same identification number.Has Any one implemented such a scenario.
Thanks!
Hi
System usually gives warning message F0417 aaginst the duplicatate print schedule , no need to do anything to get this message..
Please check print log in additional filed tab in F110 , you will find this warning message in the log.
Further you can chcek this warning message property if you can change this from warning to warning plus email or any other option, which will prevent /alert duplicate file processeing.
Cheers
Mukta
Similar Messages
-
Payment file duplication in target system in F110 Transaction
Hi All
Payment file duplication in target system. Wherein since the Print Job was scheduled twice by user, the duplication of payment had taken place.The payment medium program u201CRFFOAVIS_FPAYMu201D is use to control the generation of duplicate payment file at automatic payment run program(F110).User needs an warning message if print job is schedule twice on same date and same identification number.Has Any one implemented such a scenario.
Thanks!Hi Vikram,
Please set up the validation with the help of your abaper in T.Code OB28 with message type E along with message variables co.code and header level tables.
Regards,
Srinivas Muthyala -
Ueser Exit - Payment file duplication- F110
Hi All
Payment file duplication in target system.
Wherein since the Print Job was scheduled twice by user, the duplication of payment had taken place.
The payment medium program u201CRFFOAVIS_FPAYMu201D is use to control the generation of duplicate payment file at automatic payment run program(F110).User needs an warning message if print job is schedule twice on same date and same identification number.Has any one implemented such a scenario.Any user exit/ BADI for this scenario.
Thanks!Hi,
Take a look on the following:
FDTAX001 Enhancement to Transaction FDTA (event after the download)
FEDI0002 Function exits for EDI DOCS in FI - Incoming pyt adv.notes
FEDI0003 Function exits for EDI docs in FI - Save PEXR segments
FEDI0004 Function exits for EDI docs in FI - particular events
FEDI0006 Function Exits for EDI-docs in FI: Save IDCR Segments
RFFOX003 Frame for user exit RFFOX003 (in program RFFOM100)
Hope it helps.
Regards
Rajesh Kumar -
How to use FTP_COMMAND to put a file in the target system
Hi All,
I have the requirement to put an excel file from apllication server to another remote system for this i am using the function modules
1) FTP_CONNECT to connect to the sourece as well as the destination systems --- Here i am able to hit the both systems.
2) for sending the data to the target system i am using FTP_COMMAND by passing the 'put' statement along with the soruce and destinations for the command parameter.
See the bellow code
CONCATENATE 'put' v_fname '
' 'wbrs1\' folder
into cmd separated by space.
CALL FUNCTION 'FTP_COMMAND'
EXPORTING
HANDLE = dhdl
command = cmd
COMPRESS = 'N'
VERIFY =
RFC_DESTINATION =
IMPORTING
FILESIZE =
FILEDATE =
FILETIME =
tables
data = result
EXCEPTIONS
TCPIP_ERROR = 1
COMMAND_ERROR = 2
DATA_ERROR = 3
OTHERS = 4
Here v_name is the file path and name in the application server suppose say :
/usr/sap/TD2/DVEBMGS01/work/TD2_20060901_1008_WAY-LY.XLS
and wbrs1 is the target system and 'Waynesboro DFS' is the folder name i ma passing to the command .
Also I tried with the following statement
CONCATENATE 'put' v_fname '
' dhost folder
into cmd separated by space.
Here v_name is the file path and name in the application server suppose say :
/usr/sap/TD2/DVEBMGS01/work/TD2_20060901_1008_WAY-LY.XLS,
Dhost is wbrs1.wb.na.webdti.com
And Waynesboro DFS is the folder .
Here i am getting the error as invalid argument.
See the bellow messages from result internal table.
put /usr/sap/TD2/DVEBMGS01/work/TD2_20060901_1008_WAY-LY.XLS
wbrs1\ Waynesboro DFS
open /usr/sap/TD2/DVEBMGS01/work/TD2_20060901_1008_WAY-LY.XLS errno 22: Invalid argument
Please let me know how i can resolve this problem and how can I put this file in the destination system.
Thanks in advance.
Regards,
Venkatcheck this code....here data is transferred from SAP to Informatica box..
REPORT zfo_phoenix_acc_reconciliation NO STANDARD PAGE HEADING
MESSAGE-ID zz
LINE-SIZE 255
LINE-COUNT 65.
PROGRAM DECLARATION
PROGRAM ID : ZFO_PHOENIX_ACC_RECONCILIATION
DESCRIPTION : Phoneix Account Reconcilation Program-Feed
Balance sheet account balances from GL
3 files needed to be enhanced. The files are " Master
Attribute File" & "Transaction File(GL Balance)". For
Master Attribute File, data needs to be retrieved from
T001, ZDATSRC_T, SKA1, T003, T856. The corresponding
data from all the tables is downloaded into file
according to the condition specified. For Transaction
File, data needs to be retrieved from ZGEIST based on
Ledger(GG), Record Type(0), Fiscal Year, Period(016).
Then the current period is used to determine which TSLxx
& KSLxx needs to be used. Also, the conditions are
specified in specs which have been used accordingly.
The final data fetched will need to processed as files
which neednot be downloaded to Presentation/Application
server. Instead the files are been FTPed to the
Informatica Server using FTP. The location where the
files need to be located is ERC\GLOBALSAP.
TABLES
TABLES : ADR6.
TYPES
Output File - Master COA(Chart of Account)
TYPES : BEGIN OF ty_coacode ,
coa_code(20), "COA Code
coa_description(50), "COA Description
field11 TYPE x, "Line Feed
END OF ty_coacode.
Output File - Master Account
TYPES : BEGIN OF ty_acctcode ,
act_code(20), "GL Account Number
act_desc(60), "GL Account Description
act_act_flag(1), "Account marked for deletion indicator
glact_type(1), "GL Account type
fi_line(20), "Corporate Financial Statement Line
coa_code(20), "COA Code
act_defcode(3), "Account Defination Code
field11 TYPE x, "Line Feed
END OF ty_acctcode.
Output File - Master Entity
TYPES : BEGIN OF ty_entitycode,
entity_code(12), "Entity Code
com_desc(40), "Company Name
coa_code(20), "COA Code
field11 TYPE x, "Line Feed
END OF ty_entitycode.
Output File - Master Attribute
TYPES : BEGIN OF ty_attribcode,
attrib_code(5), "Attribute Code
attrib_value(20), "Attribute Value
attrib_desc(60), "Attribute Description
field11 TYPE x, "Line Feed
END OF ty_attribcode.
Output File - Transaction GL Balance
TYPES : BEGIN OF ty_glbal,
gl_reccode(2), "GL Reconciliation Code
gl_entity(12), "GL Entity - Company Code
gl_accnum(20), "Gl Group Account Number
site(4), "Site
currency_type(6), "Transaction Currency Code
year(4) TYPE n, "Year
month(2) TYPE n, "Month
as_of_date(8), "Date Account Balance
tran_cur_amt(21), "Transaction Currency Amount
usd_amount(21), "USD Amount
racct(20), "GL Account Number
zzbewar(20), "Consolidation Transaction Type
zzdatsrc(20), "Data Source
zzblart(20), "Document Type
rassc(20), "Trading Partner
field1(20), "Attribute field1
field2(20), "Attribute field2
field3(20), "Attribute field3
field4(20), "Attribute field4
field5(20), "Attribute field5
field11 TYPE x, "Line Feed
END OF ty_glbal.
Output File - Control
TYPES :BEGIN OF ty_globalsap,
clnt_name(6), "Client Name
source_name(12), "Source Name
as_of_date(8), "AS of Date
time_stamp(6), "Time Stamp
time_zone(8), "Time Zone
num_of_files(3), "Number of Files
num_of_records(9), "Number of Records
user_ids(60), "User ID(s)
field11 TYPE x, "Line Feed
END OF ty_globalsap.
Int'table to hold ZGEIST Data
TYPES : BEGIN OF ty_zgeist_data,
rldnr TYPE rldnr, "Ledger
rrcty TYPE rrcty, "Record Type
rvers TYPE rvers, "Version
ryear TYPE gjahr, "Fiscal Year
rbukrs TYPE bukrs, "Company Code
racct TYPE racct, "Account Number
robjnr TYPE gobjnr_r, "Object Number for objects
cobjnr TYPE gobjnr_c, "Object Number for transaction
sobjnr TYPE gobjnr_s, "Object Number for partner
rtcur TYPE rtcur, "Currency Key
runit TYPE meins, "Base Unit of Measure
drcrk TYPE shkzg, "Debit/Credit Indicator
rpmax TYPE rpmax, "Period
rzzstagr TYPE stagr, "Statistical key figure
zzaltkt TYPE altkt, "Account Number in Group
zzdatsrc TYPE zdatsrc, "Data Source code
zzbewar TYPE rmvct, "Transaction Type
zzblart TYPE blart, "Document Type
rassc TYPE rassc, "Trading Partner
zzvbund TYPE rassc, "Trading Partner
tslvt TYPE tslvt9, "Transactional Currency
kslvt TYPE kslvt9, "Group Currency
END OF ty_zgeist_data.
Int'table to hold ZGEIST Error Data based on conditions
TYPES : BEGIN OF ty_zgeist_error_data,
rldnr TYPE rldnr, "Ledger
rrcty TYPE rrcty, "Record Type
rvers TYPE rvers, "Version
ryear TYPE gjahr, "Fiscal Year
rbukrs TYPE bukrs, "Company Code
robjnr TYPE gobjnr_r, "Object Number for objects
cobjnr TYPE gobjnr_c, "Object Number for transaction
sobjnr TYPE gobjnr_s, "Object Number for partner
rtcur TYPE rtcur, "Currency Key
runit TYPE meins, "Base Unit of Measure
drcrk TYPE shkzg, "Debit/Credit indicator
rpmax TYPE rpmax, "Period
END OF ty_zgeist_error_data.
FIELD SYMBOLS
FIELD-SYMBOLS : <fs> TYPE ANY.
CONSTANTS
DATA : c_selected TYPE c VALUE 'X', "Field for constant value 'X'
c_y TYPE c VALUE 'Y', "For Acc marked for deletion
c_n TYPE c VALUE 'N', "For Acc not marked for deletion
c_a TYPE c VALUE 'A', "For GL Account type Asset
c_l TYPE c VALUE 'L', "For GL Account type Liability
c_q TYPE c VALUE 'Q', "For GL Account type Equity
c_r TYPE c VALUE 'R', "For GL Account type Revenue
c_e TYPE c VALUE 'E', "For GL Account type Expense
c_t TYPE c VALUE 'T', "For GL Account type
c_userid(60) TYPE c ,
c_curtp TYPE curtp VALUE '10', "Currency type
c_curtp1 TYPE curtp VALUE '30', "Currency type
c_rassc(5) TYPE c VALUE 'RASSC', "Trading Partner
c_dtsrce(6) TYPE c VALUE 'DTSRC', "Data Source
c_sacct(5) TYPE c VALUE 'SACCT', "GL Account
c_docty(5) TYPE c VALUE 'DOCTY', "Document Type
c_trxtp(5) TYPE c VALUE 'TRXTP', "Transaction Type
c_tradptn(15) TYPE c VALUE 'Trading Partner', "Trading Partner
c_datsrc(11) TYPE c VALUE 'Data Source', "Data Source
c_glacc(10) TYPE c VALUE 'GL Account', "GL Account
c_doctyp(13) TYPE c VALUE 'Document Type', "Document Type
c_trantyp(16) TYPE c VALUE 'Transaction Type'. "Transaction Type
DATA (Simple Fields)
DATA: w_cnt1 TYPE i, "No Of records in output file COA Code
w_cnt2 TYPE i, "No Of records in output file Account
w_cnt3 TYPE i, "No Of records in output file Entity
w_cnt4 TYPE i, "No Of records in output file attribute
w_cnt5 TYPE i, "No Of records in output file GL Balance
w_tot_recs TYPE i, "TOtal number of records downloaded
w_date LIKE sy-datum, "System date
w_timediff LIKE sy-uzeit, "Time Difference to GMT
w_timezone(10) TYPE c, "Time Difference to GMT
w_file_count(3) TYPE n, "File Count
w_period TYPE poper, "To hold Period Value
w_year LIKE t009b-bdatj, "To hold Fiscal Year Value
w_outfile TYPE char64, "FTPed file path
w_hdl TYPE i. "Handle for FTP
INTERNAL TABLES
Intenal table for GL Account details
DATA: BEGIN OF it_gl_detail OCCURS 0,
saknr TYPE saknr,
txt50_skat TYPE txt50_skat,
xloev TYPE xloev,
END OF it_gl_detail.
DATA: it_company_list LIKE bapi0014_1 OCCURS 0 WITH HEADER LINE,
it_coacode TYPE STANDARD TABLE OF ty_coacode WITH HEADER LINE,
it_acctcode TYPE STANDARD TABLE OF ty_acctcode WITH HEADER LINE,
it_entitycode TYPE STANDARD TABLE OF ty_entitycode
WITH HEADER LINE,
it_attribcode TYPE STANDARD TABLE OF ty_attribcode
WITH HEADER LINE,
it_glbal TYPE STANDARD TABLE OF ty_glbal WITH HEADER LINE,
it_globalsap TYPE STANDARD TABLE OF ty_globalsap WITH HEADER LINE,
it_t001 TYPE STANDARD TABLE OF t001 WITH HEADER LINE,
it_zdatsrc TYPE STANDARD TABLE OF zdatsrc_t WITH HEADER LINE,
it_ska1 TYPE STANDARD TABLE OF ska1 WITH HEADER LINE,
it_t003 TYPE STANDARD TABLE OF t003 WITH HEADER LINE,
it_t856 TYPE STANDARD TABLE OF t856 WITH HEADER LINE,
it_zgeist_data TYPE STANDARD TABLE OF ty_zgeist_data
WITH HEADER LINE,
it_zgeist_data1 TYPE STANDARD TABLE OF ty_zgeist_data
WITH HEADER LINE,
it_zgeist_data_all TYPE STANDARD TABLE OF zgeist,
wa_it_zgeist_data1 TYPE ty_zgeist_data,
wa_it_zgeist_data TYPE zgeist,
it_zgeist_error_data TYPE STANDARD TABLE OF ty_zgeist_error_data,
wa_it_zgeist_error_data TYPE ty_zgeist_error_data.
SELECTION-SCREEN
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-009.
SELECTION-SCREEN : BEGIN OF LINE,
COMMENT 1(30) TEXT-006,
POSITION POS_LOW.
PARAMETERS : P_USER(30) TYPE C LOWER CASE OBLIGATORY.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN : BEGIN OF LINE,
COMMENT 1(30) TEXT-007,
POSITION POS_LOW.
PARAMETERS : P_PWD(30) TYPE C LOWER CASE OBLIGATORY.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN : BEGIN OF LINE,
COMMENT 1(30) TEXT-008,
POSITION POS_LOW.
PARAMETERS : P_HOST(64) TYPE C LOWER CASE OBLIGATORY.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN : BEGIN OF LINE,
COMMENT 1(30) TEXT-010,
POSITION POS_LOW.
SELECT-OPTIONS : S_EMAIL FOR ADR6-SMTP_ADDR NO INTERVALS.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN END OF BLOCK B1.
-- Password not visible--
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-name = 'P_PWD'.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
I N I T I A L I Z A T I O N *
INITIALIZATION.
w_date0(2) = sy-datum4(2).
w_date2(2) = sy-datum6(2).
w_date4(4) = sy-datum0(4).
S_EMAIL-SIGN = 'I'.
S_EMAIL-OPTION = 'EQ'.
S_EMAIL-LOW = '[email protected]'.
APPEND S_EMAIL.
S_EMAIL-SIGN = 'I'.
S_EMAIL-OPTION = 'EQ'.
S_EMAIL-LOW = '[email protected]'.
APPEND S_EMAIL.
START - OF - SELECTION
START-OF-SELECTION.
Geting Company Details
PERFORM get_company_list.
Geting GL Account Details
PERFORM get_gl_acc_detail.
Geting GL Balance Details
PERFORM get_zgeist_data.
END - OF - SELECTION
PERFORM process_coacode.
PERFORM process_acctcode.
PERFORM process_entitycode.
PERFORM process_attribcode.
PERFORM process_glbal.
PERFORM process_ftp_file.
IF NOT it_zgeist_error_data[] IS INITIAL.
PERFORM write_error_report.
ENDIF.
*& Form GET_COMPANY_LIST
Form to get Company List *
FORM get_company_list.
CALL FUNCTION 'BAPI_COMPANY_GETLIST'
TABLES
company_list = it_company_list.
ENDFORM. "GET_COMPANY_LIST
*& Form GET_GL_ACC_DETAIL
Form to get the GL Account details *
FORM get_gl_acc_detail.
DATA : l_txt50 LIKE skat-txt50,
l_tabix LIKE sy-tabix.
SELECT saknr xloev
INTO TABLE it_gl_detail
FROM ska1
WHERE ktopl = 'G001'
AND ( saknr GE '1000000000' AND saknr LE '4500000000' ).
LOOP AT it_gl_detail.
l_tabix = sy-tabix.
SELECT SINGLE txt50
INTO l_txt50
FROM skat
WHERE spras = 'EN'
AND ktopl = 'G001'
AND saknr = it_gl_detail-saknr.
it_gl_detail-txt50_skat = l_txt50.
MODIFY it_gl_detail INDEX l_tabix.
CLEAR l_txt50.
ENDLOOP.
ENDFORM. "GET_GL_ACC_DETAIL
*& Form PROCESS_COACODE
Form to Populate COA data to Output internal table IT_COACODE *
FORM process_coacode.
it_coacode-coa_code = text-023. "GLOBAL.
it_coacode-coa_description = text-022. "Global SAP for ERC
it_coacode-field11 = '11'.
APPEND it_coacode.
CLEAR it_coacode.
ENDFORM. "PROCESS_COACODE
*& Form PROCESS_ACCTCODE
Form to Populate Account data to Output Internal table IT_ACCTCODE *
FORM process_acctcode.
DATA:l_saknr(10).
DATA : it_gl_detail2 LIKE it_gl_detail OCCURS 0 WITH HEADER LINE.
IF NOT it_gl_detail[] IS INITIAL.
it_gl_detail2[] = it_gl_detail[].
SORT it_gl_detail2 BY saknr.
DELETE ADJACENT DUPLICATES FROM it_gl_detail2 COMPARING saknr.
ENDIF.
IF NOT it_gl_detail2[] IS INITIAL.
LOOP AT it_gl_detail2.
MOVE it_gl_detail2-saknr TO it_acctcode-act_code.
MOVE it_gl_detail2-txt50_skat TO it_acctcode-act_desc.
Check GL Account is marked for deletion or not
IF it_gl_detail2-xloev = c_selected.
it_acctcode-act_act_flag = c_n.
ELSE.
it_acctcode-act_act_flag = c_y.
ENDIF.
Determine GL Account type based on GL account number
l_saknr = it_gl_detail2-saknr.
SHIFT l_saknr LEFT DELETING LEADING '0'.
IF l_saknr CP '1*'.
it_acctcode-glact_type = c_a.
ELSEIF l_saknr CP '2*'.
it_acctcode-glact_type = c_l.
ELSEIF l_saknr CP '3*'.
it_acctcode-glact_type = c_q.
Start of Addition by C.Ramesh Babu on 11/04/2005 "DR1K907900
ELSEIF l_saknr CP '4*'.
it_acctcode-glact_type = c_l.
End of Addition by C.Ramesh Babu on 11/04/2005 "DR1K907900
ELSEIF l_saknr CP '5*'.
it_acctcode-glact_type = c_r.
ELSEIF l_saknr CP '6*'.
it_acctcode-glact_type = c_e.
ELSEIF l_saknr CP '7*'.
it_acctcode-glact_type = c_t.
ENDIF.
it_acctcode-fi_line = 'CDR'.
it_acctcode-coa_code = 'GLOBAL'.
it_acctcode-act_defcode = '001'.
it_acctcode-field11 = '11'.
APPEND :it_acctcode.
CLEAR :it_acctcode,it_gl_detail2.
ENDLOOP.
ENDIF.
ENDFORM. "PROCESS_ACCTCODE
*& Form PROCESS_ENTITYCODE
Form to Populate Entiti data to Output file internal table *
FORM process_entitycode.
IF NOT it_company_list[] IS INITIAL.
LOOP AT it_company_list.
SHIFT it_company_list-company LEFT DELETING LEADING '0'.
MOVE it_company_list-company TO it_entitycode-entity_code.
MOVE it_company_list-name1 TO it_entitycode-com_desc.
it_entitycode-coa_code = 'GLOBAL'.
it_entitycode-field11 = '11'.
APPEND it_entitycode.
CLEAR : it_company_list,it_entitycode.
ENDLOOP.
ENDIF.
ENDFORM. "PROCESS_ENTITYCODE
*& Form PROCESS_ATTRIBCODE
Form to Populate Attribute data to output file internal table *
FORM process_attribcode.
Getting data from T001.
SELECT * FROM t001 INTO TABLE it_t001.
LOOP AT it_t001.
MOVE c_rassc TO it_attribcode-attrib_code.
MOVE it_t001-bukrs TO it_attribcode-attrib_value.
MOVE c_tradptn TO it_attribcode-attrib_desc.
it_attribcode-field11 = '11'.
APPEND it_attribcode.
CLEAR it_attribcode.
ENDLOOP.
Getting data from table ZDATSRC_T.
SELECT * FROM zdatsrc_t INTO TABLE it_zdatsrc.
LOOP AT it_zdatsrc.
MOVE c_dtsrce TO it_attribcode-attrib_code.
MOVE it_zdatsrc-zdatsrc TO it_attribcode-attrib_value.
MOVE c_datsrc TO it_attribcode-attrib_desc.
it_attribcode-field11 = '11'.
APPEND it_attribcode.
CLEAR it_attribcode.
ENDLOOP.
Getting data from table SKA1.
SELECT * FROM ska1 INTO TABLE it_ska1.
LOOP AT it_ska1.
MOVE c_sacct TO it_attribcode-attrib_code.
MOVE it_ska1-saknr TO it_attribcode-attrib_value.
MOVE c_glacc TO it_attribcode-attrib_desc.
it_attribcode-field11 = '11'.
APPEND it_attribcode.
CLEAR it_attribcode.
ENDLOOP.
Getting data from table T003.
SELECT * FROM t003 INTO TABLE it_t003.
LOOP AT it_t003.
MOVE c_docty TO it_attribcode-attrib_code.
MOVE it_t003-blart TO it_attribcode-attrib_value.
MOVE c_doctyp TO it_attribcode-attrib_desc.
it_attribcode-field11 = '11'.
APPEND it_attribcode.
CLEAR it_attribcode.
ENDLOOP.
Getting data from table T856.
SELECT * FROM t856 INTO TABLE it_t856.
LOOP AT it_t856.
MOVE c_trxtp TO it_attribcode-attrib_code.
MOVE it_t856-trtyp TO it_attribcode-attrib_value.
MOVE c_trantyp TO it_attribcode-attrib_desc.
it_attribcode-field11 = '11'.
APPEND it_attribcode.
CLEAR it_attribcode.
ENDLOOP.
ENDFORM. "PROCESS_ATTRIBCODE
*& Form PROCESS_GLBAL
Form to Populate GL Balance data to Output file internal table *
FORM process_glbal.
DATA : l_ctran_amt(21),
l_cusd_amt(21).
LOOP AT it_zgeist_data INTO wa_it_zgeist_data1.
*Start of change by 501030559 on 11/04/2005
it_glbal-gl_reccode = '04'.
it_glbal-gl_reccode = '05'.
*End of change by 501030559 on11/04/2005
it_glbal-gl_entity = wa_it_zgeist_data1-rbukrs.
it_glbal-gl_accnum = wa_it_zgeist_data1-zzaltkt.
it_glbal-site = 'ERC'.
it_glbal-currency_type = wa_it_zgeist_data1-rtcur.
it_glbal-year = w_year.
it_glbal-month = w_period.
it_glbal-as_of_date = w_date.
l_ctran_amt = wa_it_zgeist_data1-tslvt.
Put sign to left side of the value
IF l_ctran_amt LT 0.
TRANSLATE l_ctran_amt USING ' 0'.
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
CHANGING
value = l_ctran_amt.
ELSE.
Trailing Zero's to the value
SHIFT l_ctran_amt RIGHT DELETING TRAILING space.
TRANSLATE l_ctran_amt USING ' 0'.
REPLACE '0' WITH '' INTO l_ctran_amt.
ENDIF.
it_glbal-tran_cur_amt = l_ctran_amt.
l_cusd_amt = wa_it_zgeist_data1-kslvt.
Put Sign to leftside of the value
IF l_cusd_amt LT 0.
TRANSLATE l_cusd_amt USING ' 0'.
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
CHANGING
value = l_cusd_amt.
ELSE.
Trailing Zero's to the value
SHIFT l_cusd_amt RIGHT DELETING TRAILING space.
TRANSLATE l_cusd_amt USING ' 0'.
REPLACE '0' WITH '' INTO l_cusd_amt.
ENDIF.
it_glbal-usd_amount = l_cusd_amt.
it_glbal-racct = wa_it_zgeist_data1-racct.
it_glbal-zzbewar = wa_it_zgeist_data1-zzbewar.
it_glbal-zzdatsrc = wa_it_zgeist_data1-zzdatsrc.
it_glbal-zzblart = wa_it_zgeist_data1-zzblart.
it_glbal-rassc = wa_it_zgeist_data1-rassc.
it_glbal-field11 = '11'.
APPEND it_glbal.
CLEAR : wa_it_zgeist_data1, it_glbal.
ENDLOOP.
ENDFORM. "PROCESS_GLBAL
*& Form PROCESS_GLOBALSAP
Form to Populate COntrol data to Output file internal table *
FORM process_globalsap.
DATA :l_total(9),
l_len(3) type c.
Logic to get Time Zone
w_timediff = sy-tzone.
IF sy-tzone LT '0'.
w_timediff = sy-tzone * -1.
CONCATENATE 'GMT-' w_timediff(4) INTO w_timezone.
ELSE.
w_timediff = sy-tzone.
CONCATENATE 'GMT+' w_timediff(4) INTO w_timezone.
ENDIF.
LOOP AT S_EMAIL.
CONCATENATE C_USERID S_EMAIL-LOW ',' INTO C_USERID.
ENDLOOP.
l_len = strlen( c_userid ).
l_len = l_len - 1.
c_userid = c_userid+0(l_len).
it_globalsap-clnt_name = 'ERC'.
it_globalsap-source_name = 'GLOBALSAP'.
it_globalsap-as_of_date = w_date.
it_globalsap-time_stamp = sy-uzeit.
it_globalsap-time_zone = w_timezone.
it_globalsap-num_of_files = w_file_count.
MOVE w_tot_recs TO l_total.
SHIFT l_total RIGHT DELETING TRAILING space.
TRANSLATE l_total USING ' 0'.
it_globalsap-num_of_records = l_total.
it_globalsap-user_ids = c_userid.
it_globalsap-field11 = '11'.
APPEND it_globalsap.
CLEAR it_globalsap.
ENDFORM. "PROCESS_GLOBALSAP
*& Form COUNT_RECORDS
Form to count total number of records Downlaoded *
FORM count_records.
DESCRIBE TABLE it_coacode LINES w_cnt1.
DESCRIBE TABLE it_acctcode LINES w_cnt2.
DESCRIBE TABLE it_entitycode LINES w_cnt3.
DESCRIBE TABLE it_attribcode LINES w_cnt4.
DESCRIBE TABLE it_glbal LINES w_cnt5.
w_tot_recs = w_cnt1 + w_cnt2 + w_cnt3 + w_cnt4 + w_cnt5.
ENDFORM. "COUNT_RECORDS
*& Form get_zgeist_data
Form used to fetch data from ZGEIST table for the GL BAL file
FORM get_zgeist_data .
PERFORM get_period_year.
SELECT * INTO TABLE it_zgeist_data_all
FROM zgeist
WHERE rldnr EQ 'GG'
AND ryear EQ w_year
AND rrcty EQ 0
AND rpmax EQ '016'
AND ( zzaltkt GE '1000000000' AND zzaltkt LE '4500000000' )
AND rzzstagr = space.
sort it_zgeist_data_all by rbukrs rldnr zzaltkt racct
zzdatsrc zzbewar zzblart rtcur rassc.
LOOP AT it_zgeist_data_all INTO wa_it_zgeist_data.
IF wa_it_zgeist_data-zzaltkt EQ space.
wa_it_zgeist_error_data-rldnr = wa_it_zgeist_data-rldnr.
wa_it_zgeist_error_data-rrcty = wa_it_zgeist_data-rrcty.
wa_it_zgeist_error_data-rvers = wa_it_zgeist_data-rvers.
wa_it_zgeist_error_data-ryear = wa_it_zgeist_data-ryear.
wa_it_zgeist_error_data-rbukrs = wa_it_zgeist_data-rbukrs.
wa_it_zgeist_error_data-robjnr = wa_it_zgeist_data-robjnr.
wa_it_zgeist_error_data-cobjnr = wa_it_zgeist_data-cobjnr.
wa_it_zgeist_error_data-sobjnr = wa_it_zgeist_data-sobjnr.
wa_it_zgeist_error_data-rtcur = wa_it_zgeist_data-rtcur.
wa_it_zgeist_error_data-runit = wa_it_zgeist_data-runit.
wa_it_zgeist_error_data-drcrk = wa_it_zgeist_data-drcrk.
wa_it_zgeist_error_data-rpmax = wa_it_zgeist_data-rpmax.
APPEND wa_it_zgeist_error_data TO it_zgeist_error_data.
ELSE.
it_zgeist_data1-rbukrs = wa_it_zgeist_data-rbukrs.
it_zgeist_data1-rldnr = wa_it_zgeist_data-rldnr.
it_zgeist_data1-zzaltkt = wa_it_zgeist_data-zzaltkt.
it_zgeist_data1-racct = wa_it_zgeist_data-racct.
it_zgeist_data1-zzdatsrc = wa_it_zgeist_data-zzdatsrc.
it_zgeist_data1-zzbewar = wa_it_zgeist_data-zzbewar.
it_zgeist_data1-zzblart = wa_it_zgeist_data-zzblart.
it_zgeist_data1-rassc = wa_it_zgeist_data-rassc.
it_zgeist_data1-rtcur = wa_it_zgeist_data-rtcur.
PERFORM get_tslvt_kslvt_values USING w_period.
COLLECT it_zgeist_data1.
ENDIF.
CLEAR : wa_it_zgeist_data, wa_it_zgeist_error_data,
it_zgeist_data1.
ENDLOOP.
it_zgeist_data[] = it_zgeist_data1[].
ENDFORM. " get_zgeist_data
*& Form write_error_report
Form used to display error data for the GL BAL fetched data
FORM write_error_report .
DATA : l_text(80) TYPE c.
CASE w_period.
WHEN '001' OR '01'.
l_text = text-e01.
WHEN '002' OR '02'.
l_text = text-e02.
WHEN '003' OR '03'.
l_text = text-e03.
WHEN '004' OR '04'.
l_text = text-e04.
WHEN '005' OR '05'.
l_text = text-e05.
WHEN '006' OR '06'.
l_text = text-e06.
WHEN '007' OR '07'.
l_text = text-e07.
WHEN '008' OR '08'.
l_text = text-e08.
WHEN '009' OR '09'.
l_text = text-e09.
WHEN '010' OR '10'.
l_text = text-e10.
WHEN '011' OR '11'.
l_text = text-e11.
WHEN '012' OR '12'.
l_text = text-e12.
WHEN '013' OR '13'.
l_text = text-e13.
WHEN '014' OR '14'.
l_text = text-e14.
WHEN '015' OR '15'.
l_text = text-e15.
WHEN '016' OR '16'.
l_text = text-e16.
ENDCASE.
SKIP 2.
WRITE:/45 text-h01 COLOR COL_HEADING.
SKIP 2.
FORMAT COLOR 4.
WRITE:/(234) sy-uline.
WRITE:/1 sy-vline,
2 text-h02,
9 sy-vline,
10 text-h03,
19 sy-vline,
20 text-h04,
28 sy-vline,
29 text-h05,
41 sy-vline,
42 text-h06,
49 sy-vline,
50 text-h07,
69 sy-vline,
70 text-h08,
89 sy-vline,
90 text-h09,
109 sy-vline,
110 text-h10,
119 sy-vline,
120 text-h11,
130 sy-vline,
131 text-h12,
144 sy-vline,
145 text-h13,
152 sy-vline,
153 text-h14,
234 sy-vline.
WRITE:/(234) sy-uline.
FORMAT COLOR OFF.
LOOP AT it_zgeist_error_data INTO wa_it_zgeist_error_data.
FORMAT COLOR 2.
WRITE:/1 sy-vline,
4 wa_it_zgeist_error_data-rldnr,
9 sy-vline,
13 wa_it_zgeist_error_data-rrcty,
19 sy-vline,
22 wa_it_zgeist_error_data-rvers,
28 sy-vline,
32 wa_it_zgeist_error_data-ryear,
41 sy-vline,
42 wa_it_zgeist_error_data-rbukrs,
49 sy-vline,
50 wa_it_zgeist_error_data-robjnr,
69 sy-vline,
70 wa_it_zgeist_error_data-cobjnr,
89 sy-vline,
90 wa_it_zgeist_error_data-sobjnr,
109 sy-vline,
112 wa_it_zgeist_error_data-rtcur,
119 sy-vline,
123 wa_it_zgeist_error_data-runit,
130 sy-vline,
135 wa_it_zgeist_error_data-drcrk,
144 sy-vline,
147 wa_it_zgeist_error_data-rpmax,
152 sy-vline,
153 l_text,
234 sy-vline.
FORMAT COLOR OFF.
ENDLOOP.
WRITE:/(234) sy-uline.
ENDFORM. " write_error_report
*& Form get_tslvt_kslvt_values
Form used to get TSLxx & KSLxx values for the period fetched
FORM get_tslvt_kslvt_values USING period.
FIELD-SYMBOLS : <f1> TYPE ANY,
<f2> TYPE ANY.
DATA : l_tslvt_val(25) VALUE 'wa_it_zgeist_data-tsl',
l_kslvt_val(25) VALUE 'wa_it_zgeist_data-ksl',
l_tslvt TYPE tslvt9,
l_kslvt TYPE kslvt9,
l_period TYPE poper.
clear l_period.
l_period = period.
DO l_period TIMES.
CONCATENATE l_tslvt_val l_period+1(2) INTO l_tslvt_val.
CONCATENATE l_kslvt_val l_period+1(2) INTO l_kslvt_val.
ASSIGN (l_tslvt_val) TO <f1>.
l_tslvt = <f1>.
it_zgeist_data1-tslvt = it_zgeist_data1-tslvt + l_tslvt.
ASSIGN (l_kslvt_val) TO <f2>.
l_kslvt = <f2>.
it_zgeist_data1-kslvt = it_zgeist_data1-kslvt + l_kslvt.
l_period = l_period - 1.
clear : l_tslvt, l_kslvt, l_tslvt_val, l_kslvt_val.
l_tslvt_val = 'wa_it_zgeist_data-tsl'.
l_kslvt_val = 'wa_it_zgeist_data-ksl'.
if l_period = 0.
exit.
endif.
ENDDO.
ENDFORM. "get_tslvt_kslvt_values
*& Form process_ftp_file
Form used to connect & disconnect to Informatica Server using FTP
Also, used to transfer files to the Informatica location
--> p1 text
<-- p2 text
FORM process_ftp_file .
DATA: l_slen TYPE i,
l_error,
l_pwd(30) TYPE c.
CONSTANTS: c_dest TYPE rfcdes-rfcdest VALUE 'SAPFTP',
c_key TYPE i VALUE 26101957.
l_error = 0.
connect to ftp server
l_pwd = p_pwd.
l_slen = STRLEN( l_pwd ).
CALL FUNCTION 'HTTP_SCRAMBLE'
EXPORTING
SOURCE = l_pwd
sourcelen = l_slen
key = c_key
IMPORTING
destination = l_pwd.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Connect to FTP Server'.
To Connect to the Server using FTP
CALL FUNCTION 'FTP_CONNECT'
EXPORTING
user = p_user
password = l_pwd
host = p_host
rfc_destination = c_dest
IMPORTING
handle = w_hdl
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR : w_outfile, w_file_count.
MOVE 'ERC/GLOBALSAP/M_ERC_GLOBALSAP_COACODE' TO w_outfile.
PERFORM download_to_ftp TABLES it_coacode USING w_outfile.
w_file_count = w_file_count + 1.
CLEAR : w_outfile.
MOVE 'ERC/GLOBALSAP/M_ERC_GLOBALSAP_ACCTCODE' TO w_outfile.
PERFORM download_to_ftp TABLES it_acctcode USING w_outfile.
w_file_count = w_file_count + 1.
CLEAR : w_outfile.
MOVE 'ERC/GLOBALSAP/M_ERC_GLOBALSAP_ENTITYCODE' TO w_outfile.
PERFORM download_to_ftp TABLES it_entitycode USING w_outfile.
w_file_count = w_file_count + 1.
CLEAR : w_outfile.
MOVE 'ERC/GLOBALSAP/M_ERC_GLOBALSAP_ATTRIBCODE' TO w_outfile.
PERFORM download_to_ftp TABLES it_attribcode USING w_outfile.
w_file_count = w_file_count + 1.
CLEAR : w_outfile.
MOVE 'ERC/GLOBALSAP/ERC_GLOBALSAP_GLBAL' TO w_outfile.
PERFORM download_to_ftp TABLES it_glbal USING w_outfile.
w_file_count = w_file_count + 1.
CLEAR : w_outfile, w_tot_recs.
PERFORM count_records.
PERFORM process_globalsap.
MOVE 'ERC/GLOBALSAP/C_ERC_GLOBALSAP' TO w_outfile.
PERFORM download_to_ftp TABLES it_globalsap USING w_outfile.
To disconnect the FTP
CALL FUNCTION 'FTP_DISCONNECT'
EXPORTING
handle = w_hdl.
To disconnect the RFC Connection
CALL FUNCTION 'RFC_CONNECTION_CLOSE'
EXPORTING
destination = c_dest
EXCEPTIONS
OTHERS = 1.
ENDFORM. " process_ftp_file
*& Form download_to_ftp
Form to put the files in the Informatica Location using FTP
Path is ERC\GLOBALSAP\<filename>
FORM download_to_ftp TABLES it_tab
USING l_string TYPE char64.
CALL FUNCTION 'FTP_R3_TO_SERVER'
EXPORTING
handle = w_hdl
fname = l_string
character_mode = 'X'
TABLES
text = it_tab[]
EXCEPTIONS
tcpip_error = 1
command_error = 2
data_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
RAISING invalid_output_file.
ENDIF.
ENDFORM. " download_to_ftp
*& Form get_period_year
Form to fill the Period & Year based on the Sy-datum
FORM get_period_year .
DATA : l_month(2) TYPE c,
l_day(2) TYPE c,
l_year(4) TYPE c.
l_year = sy-datum+0(4).
l_month = sy-datum+4(2).
l_day = sy-datum+6(2).
CASE l_month.
WHEN '01'.
IF l_day <= '15'.
w_period = '12'.
w_year = l_year - 1.
ELSE.
w_period = '1'.
w_year = l_year.
ENDIF.
WHEN '02'.
IF l_day <= '15'.
w_period = '1'.
w_year = l_year.
ELSE.
w_period = '2'.
w_year = l_year.
ENDIF.
WHEN '03'.
IF l_day <= '15'.
w_period = '2'.
w_year = l_year.
ELSE.
w_period = '3'.
w_year = l_year.
ENDIF.
WHEN '04'.
IF l_day <= '15'.
w_period = '3'.
w_year = l_year.
ELSE.
w_period = '4'.
w_year = l_year.
ENDIF.
WHEN '05'.
IF l_day <= '15'.
w_period = '4'.
w_year = l_year.
ELSE.
w_period = '5'.
w_year = l_year.
ENDIF.
WHEN '06'.
IF l_day <= '15'.
w_period = '5'.
w_year = l_year.
ELSE.
w_period = '6'.
w_year = l_year.
ENDIF.
WHEN '07'.
IF l_day <= '15'.
w_period = '6'.
w_year = l_year.
ELSE.
w_period = '7'.
w_year = l_year.
ENDIF.
WHEN '08'.
IF l_day <= '15'.
w_period = '7'.
w_year = l_year.
ELSE.
w_period = '8'.
w_year = l_year.
ENDIF.
WHEN '09'.
IF l_day <= '15'.
w_period = '8'.
w_year = l_year.
ELSE.
w_period = '9'.
w_year = l_year.
ENDIF.
WHEN '10'.
IF l_day <= '15'.
w_period = '9'.
w_year = l_year.
ELSE.
w_period = '10'.
w_year = l_year.
ENDIF.
WHEN '11'.
IF l_day <= '15'.
w_period = '10'.
w_year = l_year.
ELSE.
w_period = '11'.
w_year = l_year.
ENDIF.
WHEN '12'.
IF l_day <= '15'.
w_period = '11'.
w_year = l_year.
ELSE.
w_period = '12'.
w_year = l_year.
ENDIF.
ENDCASE.
ENDFORM. " get_period_year -
How to Archive Files to Two target systems based on Condition
Hi All,
Iam doing Idoc--File Interface.
we have to send the file to Two Different systems based on the plant condition
If plant = 123 then send to ABC system ELSE if Plant = 999 then send it to XYZ system.
And Archive the file to one Archive folder of the any one system. this is working fine correctly.
Archive means not exactly Archiving, just we are droping one more extra file to Archive folder for refference
Now i need to construct like this
If plant = 123 then send to ABC system and Archive to Archive directory ELSE if Plant = 999 then send it to XYZ system and Archive to Archive directory.
Please suggest me on this
Regards
VamsiIf Plant = 123 then select the BS1(ABC System)
Ex: //sapdev/test/ABC/item.txt
For Archive If Plant = 123 then select the BS1(ABC System) Archive folder
Ex: //sapdev/test/ABC/Archive/item.txt
If Plant = 999 then select the BS2(XYZ System)
Ex: //sapdev/test/XYZ/item.txt
For Archive If Plant = 123 then select the BS2(XYZ System) Archive folder
Ex: //sapdev/test/XYZ/Archive/item.txt
Then this becomes very simple:)
I m assuming you are already using conditional Receiver determination,now for each receiver just configure an extra interface in Interface determination.
so you will have 2 interface determination and each one of them will have 2 inbound messages,they can use same interface mapping.
you already will have 1 conditional receiver determination.
You can also do this via OS script if you have experience in that.
Thanks
Aamir -
Hi All,
I have a requirement to send the two file from the third party system(GXS) to SAP ECC via SAP PI(version - 7.4). We are using AS2 adapter at the sender side to pick the file and using File Adapter to place the file in ECC.
Its a pass through scenarion(No ESR part is used).
Requirement:
We are going to get 2 files ->Example: one from Axis and another one from ICICI -> each bank file will have a file name ->
We have to post the file at the target system with the same name as source file name, the source file name could come dynamically(with diff time stamp).
Please let me know, Is it possible to achieve the above requirement(we have to retain the file name in target that coming from source system) with Sender AS2 adapter, If yes then please suggest the best approach.
Regards,
Pradeep BawliaHi Guys,
The above requirement is solved now.
Solution - I used java mapping for extracting the same source file name and assignning the same to the target system.
Code:
public class ExtractFileName_ASMA extends AbstractTransformation{
public void transform(TransformationInput in, TransformationOutput out) throws StreamTransformationException
DynamicConfiguration conf=in.getDynamicConfiguration();
DynamicConfigurationKey key_AS2FileNmae = DynamicConfigurationKey.create("http://sap.com/xi/XI/AS2/AS2", "AS2Filename");
DynamicConfigurationKey key_FileNmae = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System/File", "FileName");
String As2FileName=conf.get(key_AS2FileNmae);
conf.put(key_FileNmae, As2FileName);
try{
byte b[]=new byte[in.getInputPayload().getInputStream().available()];
in.getInputPayload().getInputStream().read(b);
out.getOutputPayload().getOutputStream().write(b);
catch(Exception e)
2. Another solution we can use the graphical mapping and need to use the dynamic config UDF at mapping level to acheive this requirement but here is one drawback - we need to do content conversion is this case.
In case of Java mapping, no need to play with source file.
WITHOUT USING ESR, WE CAN NOT ACHEIVE THIS REQUIREMENT.
Regards,
Pradeep Bawlia -
BPM was Picking two files but it was not processing 2nd file data in target
Hi all,
I have designed scenario for picking two files and i want to merge this files into single structure and send it target.when i am try to testing my bpm was picking two files but it is processing only file it went target system.i have steructe for source like
source1 target
root header
a item 0 to unbounded
b a
c b
c
source2 item1 duplicated structure
a a
b b
c c
i am getting two source files with the same structure but i have to map it one target structure and i want to map both source fileds to one target structre under item node so i was duplicated item node and mapped a b c fields from both(2 source structures).while testing BPM is picking two file bu in the target i am getting only first file data under item node,whatever i mapped with duplicate structure with second file i am not getting into target file(target is standard proxy structure so cant' create new one item node in that occurance is 0 to unbounded thats y i duplicated node while testing interface mapping its working fine).can anyone suggest solution for this problem.
Thanks,
Seshagiri.Hi,
In BPM follow the below steps and hopefully your problem will be solved.
1. Configure one sender CC to get the files from your application server, once the files hit the BPM now you need to
configure your BPM accordingly.
2. Use the Receiver step in BPM to receive the messages. Use the correlation step to get the correct files.
3. Use container and append the files, so both the files will be append, this means the message content will
have 1header, body, footer, 2header, body, footer.
4. If you want to split the message to different receiver then use the fork step else leave it.
5. Use the transformation step, the transformation step will call the message mapping. Provide the correct message
mapping.
6. Now use the sender step to send the message to the receiver-target system. In this step use the split value for each
concept if you want to generate two different files.
7. Configure 1 receiver CC to generate both the files.
Hope this helps.
Cheers,
Jay -
Changing Unix file attributes in target host
Hello,
I need to transmit a file from a SAP server to a target host in Unix.
Actually the transmission is OK. I'm using the SAPFTP program.
Now, my problem is that in the new file on the target system (in Unix) I need to change the file permissons to 777.
The FM FTP_COMMAND doesn't work because the command chmod is not available through ftp. If I use this, I receipt the message "502 SITE command is not implemented".
Somebody have another idea to change the Unix file attributes in a remote way from ABAP?
Best regards!Hi Roberto,
Look at the below BLOG, this explaines about the Commands which we use in FTP ..
/people/thomas.jung3/blog/2004/11/15/performing-ftp-commands-from-abap
Regards
Sudheer -
How do I consolidate in FDM AFTER all files load to target?
Hi,
We are using FDM to import and export out to HFM forecasting data. The files are sent via ETL to the OpenBatch folder and then I am using parallel processing to import, validate, and consolidate the files to the target system, which is HFM. The problem is the performance. As each file is loaded using the batch loader script, it loads and consolidates each file as each file processes. I would like to find a way to load and export all files FIRST to HFM - and then when the last file is encountered (the 12th file), I would like to run a consolidate on the file to HFM so that the consolidation will consolidate all at once and help save some time. Here are the steps I would like to accomplish:
1. Import, Validate, and Export the first 11 files to HFM
2. Import, Validate, Export, and Consolidate the 12th file to HFM - the idea is that all previous 11 files will consolidate atone time instead of the out of the box way using the standard BatchLoader script.
Does anyone know HOW I can make this happen? Out of the box this is not possible without some major script customization. Could someone please give me some sort of idea where I can make this happen? I really appreciate the help. Below is the standard Batch Loader script I am using and I would like to somehow customize:
Sub webBatchStdParallel()
'Oracle Hyperion FDM CUSTOM Script:
'Parallel Processing
'STANDARD Batch Parallel Processing
'Declare Local Variables
Dim lngProcessLevel
Dim strDelimiter
Dim blnAutoMapCorrect
Dim lngParallelProcessCount
Dim strLoadBalanceServerName
Dim BATCHENG
Set BATCHENG = CreateObject("upsWBatchLoaderDM.clsBatchLoader")
BATCHENG.mInitialize API, SCRIPTENG
'Initialize variables Variables
lngProcessLevel = 10 'Up-To-Consolidate
strDelimiter = "_" 'File Name Delimiter
blnAutoMapCorrect = True 'Auto Map Correction is On
lngParallelProcessCount = 2 'Number of Parallel Processes (Should equal # of Processors)
strLoadBalanceServerName = "Everest0555" 'Load balance server for parallel process
'Create the file collection
Set BATCHENG.PcolFiles = BATCHENG.fFileCollectionCreate(CStr(strDelimiter))
'Execute a Standard Parallel batch
BATCHENG.mFileCollectionProcessParallel BATCHENG.PcolFiles, CLng(lngProcessLevel), CLng(lngParallelProcessCount), CStr(strLoadBalanceServerName), , CBool(blnAutoMapCorrect)
End SubHi,
Thanks for all the input so far, I really appreciate it. I have made a lot of progress and added code to the batch loader script.
Again, What I am trying to do is load 12 forecasting files (Periodic) for each month through FDM and then load to HFM. After the load, I want to kick off the consolidation process to the target system (HFM) AFTER the data has been loaded through FDM to help speed up time by running the consolidation all at once in HFM instead of by each file one by one in FDM. Here is some more info:
1. I have 12 files loaded to the OpenBatch Folder - Each file is a monthly file.
2. The 12 files (Starting from November 2010 - Oct 2011) are exported and loaded to HFM. No consolidation takes place.
3. I want to add a procedure AFTER the load to run consolidation on the last file loaded (Oct. 2011) in HFM so the consolidation will kick off in HFM and consolidate the remaining months in HFM instead of in FDM. I tested manually and the time is increased 10-fold.
4. I have potentially identified the "ActConsolidate" Method could be used to run the consolidation in the target system. In my code you can see that I have added the ActConsolidate call AFTER the batch load. I was hoping this would run the consolidation directly in HFM by calling the consolidation in HFM. However, when I run the script I keep getting the following error:
"91 - Object variable or With block variable not set At Line: 52" Apparently I am not calling or setting the object up correctly. Am I missing something? I sincerely appreciate everyones help and will promise to give big kudos to anyone who can help me along. I am almost there. THis is very difficult for me and I know it's a tough scenario because no one seems to have a solution posted anywhere on this forum.
Below is my code:
Sub webBatchStdParallelFcst()
'Oracle Hyperion FDM Custom Script:
'Created By:
'Date Created: 10/4/2010 9:27:32 AM
'Purpose:
'STANDARD Batch Parallel Processing and consolidation - Foresacting
'Declare Local Variables for Batch Processing
Dim lngProcessLevel
Dim strDelimiter
Dim blnAutoMapCorrect
Dim lngParallelProcessCount
Dim strLoadBalanceServerName
Dim BATCHENG
Set BATCHENG = CreateObject("upsWBatchLoaderDM.clsBatchLoader")
BATCHENG.mInitialize API, SCRIPTENG
'Declare Local Variables for consolidation
Dim strLoc
Dim strCat
Dim strStartPer
Dim strEndPer
Dim CONSOLENG
Set CONSOLENG = CreateObject("upsWBlockProcessorDM.clsBlockProcessor")
'Initialize variables for Batch Processing
lngProcessLevel = 8 'Up-To-Load
strDelimiter = "_" 'File Name Delimiter
blnAutoMapCorrect = True 'Auto Map Correction is On
lngParallelProcessCount = 2 'Number of Parallel Processes (Should equal # of Processors)
strLoadBalanceServerName = "everest3105" 'Load balance server for parallel process
'Initialize ActConsolidate Variables
strLoc = "FORECAST"
strCat = "FDMPLAN"
strStartPer = "Oct - 2011"
strEndPer = "Nov - 2011"
'Create the file collection
Set BATCHENG.PcolFiles = BATCHENG.fFileCollectionCreate(CStr(strDelimiter))
'Execute a Standard Parallel batch
BATCHENG.mFileCollectionProcessParallel BATCHENG.PcolFiles, CLng(lngProcessLevel), CLng(lngParallelProcessCount), CStr(strLoadBalanceServerName), , CBool(blnAutoMapCorrect)
'Execute Consolidation on Target System
CONSOLENG.ActConsolidate strLoc, strCat, strStartPer, strEndPer
End Sub
However, I am getting the following error: "91 - Object variable or With block variable not set At Line: 52" I don't understand, the objects appear to be set up properly. -
F110 Automatic Payment: Create payment file and create remittance
Hello,
I'd like to know the steps to create payment file and remittances in Automatic payment process (F110).
Thanks in advanceHello Emanula,
payment medium entries are customized in "payment method Country details". You have to decide whether you want to use the PMW or the classical paymentprogram.
The paymentadvices are generated from the paymentprogram by using the parameters from the CC-data of the paymentmethod - Box "Payment advice control".
At least: Don't forget to maintain the parameters in f110 "Printout/data medium"
Hope this gives you a help.
Best regards
Horst -
PI FTP: Process 1 file at a time until it is successfully processed at the target system
Dear Experts,
As the title said, I'm required to process 1 file at a time and only process the next file after the previous file has been successfully processed at the target system. The interface scenario is asynchronous FTP to ABAP proxy.
It is similar with the following link:
File adapter to pick a single file
I think there could be 2 feasible solutions:
1. Configure EOIO at the sender CC. According to this link:
Queues for Asynchronous Message Processing (SAP Library - SAP NetWeaver Exchange Infrastructure)
It is stated that "Once the message has been processed successfully in the target system, the Integration Engine executes an implicit database commit."
In the case of asynchronous FTP to ABAP proxy, will the PI wait for the ABAP proxy to finish processing the file before sending the next one?
2. Configure locking at the ABAP program in ECC. I could ask the ABAPer to create a locking mechanism to lock the document before it is posted to BAPI. If the reference document is being locked, it will try again for the next second up to a certain times before it gives up.
Which 1 is actually fits the requirement?
Thank you,
Suwandi C.Dear Experts,
Sorry, just 1 more question which I'm curious.
In NFS adapter we have the option to set the processing sequence to by Name / Date.
In FTP will it only by Date?
According to this link:
https://help.sap.com/saphelp_nw73/helpdata/en/f9/17888f490846a9972628525cc28aac/content.htm
"Messages are delivered with the same queue names (supplied by the application) in the same sequence that they were sent from the sender system"
If it is in the same sequence sent by the sender, I guess it is in the Date order for FTP. Is that correct?
Thank you,
Suwandi C. -
Perform unicode to UTF-8 conversion on F110 bacs payment file in ABAP
Hi,
I am facing a conversion issue for the UK BACS payment files.
The payment run tcode F110 creates a payment file but the file when created on the application server has soem sort of code conversion. If I removed the # value, i can read most of the data.
The data example is as below-
#V#O#L#1#0#0#1#5#8#8# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #2#4#3#3#0#9#
#H#D#R#1#A#2#4#3#3#0#9#S# # #1#2#4#3#3#0#9#0#0#0#0#0#2#0#0#0#1#0#0#0#1# # # # # # # #1#0#1#1#2#
#H#D#R#2#F#0#2#0#0#0#0#0#1#0#0# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#U#H#L#1# #1#0#1#1#3#9#9#9#9#9#9# # # # #0#0#0#0#0#0#0#0#1# #D#A#I#L#Y# # #0#0#0# # # # # # # #
This is then transferred to the bank via the FTP UNIX Script but after the conversion which is happening as-
#Perform unicode to UTF-8 conversion on bacs file
$a = "iconv -f UNICODE -t UTF-8 $tmpUNI > $tmpASC";
The need going forward is to bring the details via the interface and then make an uplaod.
The ABAP code should be able to make the conversion, remove the additional chracters and then send the file across.
I have searched everywhere but I am not able to find out how to make the same conversion in ABAP.
We are on ECC6.
Can someone please help me?
Regards,
ArchanaHi Archana,
can you please check SAP notes 1064779 and 1365764 (including the attachment) and see if this helps you ?
Best regards,
Nils Buerckel
SAP AG -
** File to IDoc scenario - IDoc not created in target system
Hi friends,
We are doing File to IDoc scenario. We made required setting in both application as well as XI system. While test the scenario, the file is picked up and successfully processed in SXMB_MONI, but the inbound IDoc is not created in target system. What could be the problem?
We are using DEBMAS message type DEBMAS06 IDoc type. We checked the following.
1) SM59 - Connections are OK both application and XI system
2) IDX1 - In XI System, we have assigned SAP<R/3> port.
3) IDX2 - IDoc is imported.
4) In ID - Sender File - Business Service - Adapter-Specific Identifier - Logical System name is given.
5) In application system. - Partner Profile maintained correctly.
6) SM58 - There is no error.
So, what could be the reason ?
Kindly reply, friends,
Thanking you.
Kind Regards,
Jeg P.Hi,
Check all the steps ..
File to IDOC
Do these configurations in R/3 and in XI...
SAP XI
1) RFC Destination (SM59)
a) Choose create.
b) Specify the name of the RFC destination
c) Select connection type as 3 and save
d) In the technical settings tab enter the details SAP SID/URL and system number#.
e) Enter the Gateway host as same details above SID/URL.
f) Gateway service is 3300+system number#.
g) In the Logon /Security tab, enter the client user & Password details of Destination system.
h) Test the connection and remote logon.
2) Create Port (IDX1)
a) Select create new button
b) Enter the port name as SAP+SID (The starting char should be SAP)
c) Enter the destination client.
d) Enter the RFC Destination created in SAP R/3 towards other system.
e) Save
3) Load Meta Data for IDOC (IDX2)
a) Create new
b) IDOC Message Type
c) Enter port created in IDX1.
SAP R/3
1) RFC Destination (SM59)
a) Choose create.
b) Specify the name of the RFC destination
c) Select connection type as 3 and save
d) In the technical settings tab enter the details SAP SID/URL and system number#.
e) Enter the Gateway host as same details above SID/URL.
f) Gateway service is 3300+system number#.
g) In the Logon /Security tab, enter the client user & Password details of Destination system.
h) Test the connection and remote logon.
2) Create Port (We21)
a) First Select Transactional RFC and then click create button
b) Enter the destination port name as SAP+SID (The starting char should be SAP)
c) Enter the destination client.
d) Enter the RFC Destination created in SAP R/3 towards other system.
e) Save
3) Create Partner Profile (WE20)
a) Create New
b) Create the Partner no. name as same the logical system name of the destination system.
c) Select Partner type LS
d) Enter details for Type: US/USER, Agent, and Lang.
e) Click on the + button to select the message type.
f) Select Partner no. and LS which ever create above.
g) Select Message type
h) Select Process code related to the Message type.
I) save.
Thanks,
Satya -
After F110 run in the payment file the account holder details are missed
Hai
After running the F110 pament run, In the payment file the ACCOUNT HOLDER name is missing . The ACCOUNT HOLDER details must picked up from VENDOR MASTER. This is happening when ACCOUNT HOLDER and VENDOR are different. When ACCOUNT HOLDER and VENDOR are same it is displaying Correctly.The Bottom line is when VENDOR=ACCOUNT HOLDER, in the payment file it is displaying the VENDOR name correctly. But When VENDOR is not= ACCOUNT HOLDER, in the Payment file ACCOUNT HOLDER name is blanked out. The bank requires the name in that field in the payment file.
Kindly Assist me
Thanks in advance
Regards,
Akash NarayanaHello Friends - Can you please give me a little idea on what could be the reason for the below issue.
We are using the program RFFOJP_T and when payment file is generated, some of the payment details are missing.
I have executed payment run for 5 payments and only one 1 has come to the file and below 4 are missing.
The following payment documents/payment orders were not updated
(Result of the payment document update)
CoCd Payment document/Payment order
9770 1400001524
9770 1400001525
9770 1400001526
9770 1400001527
The accompanying payment media have not been generated
>
> Overview of the files generated (DME)
> Name / File name
Thanks -
F110 DME payment file: add a number of lead days to posting and value date
Hello,
For an Italian company, the DME payment file (F110) needs to be checked and approved by an accountant after it is created. This takes 3 to 4 days after which the file is sent to the bank. The bank will reject the file if the value date is three days late (date which the bank uses to process the file on). For fiscal reasons the accounting clerks need the have the same posting date as the value date
I managed to set the value date in the DME files a couple of days later. The setting I used (FBZP -> bank determination -> value date) adds the number of lead days to the value date on the basis of the posting date as defined by the user in F110. For some reason I cannot set it to 0 days, it always adds up 1 day. Is that a normal effect or have I changed the settings in the wrong way?
I found another setting in customising ("define value date rules") which seems to have the same functionality. In the help function it is said that the setting does not influence the payment program and that the program manages the value date. Is there another setting? Can this problem be solved without the help of a programmer?
Thank you very much!
René
functional consultant
Edited by: ConsultantSAINT-OBAIN on Apr 8, 2010 10:24 AMHere's a section of code that does exactly that:
CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
EXPORTING
CORRECT_OPTION = '+'
DATE = G_WORKAREA3-CREATEDON
FACTORY_CALENDAR_ID = L_S_PLANT-FACTCAL_ID
IMPORTING
* DATE =
FACTORYDATE = L_FCDATE
EXCEPTIONS
CALENDAR_BUFFER_NOT_LOADABLE = 1
CORRECT_OPTION_INVALID = 2
DATE_AFTER_RANGE = 3
DATE_BEFORE_RANGE = 4
DATE_INVALID = 5
FACTORY_CALENDAR_NOT_FOUND = 6
OTHERS = 7.
L_FCDATE = L_FCDATE + L_S_ZLEAD-/BIC/ZLEAD.
CALL FUNCTION 'FACTORYDATE_CONVERT_TO_DATE'
EXPORTING
FACTORYDATE = L_FCDATE
FACTORY_CALENDAR_ID = L_S_PLANT-FACTCAL_ID
IMPORTING
DATE = L_DATE
EXCEPTIONS
CALENDAR_BUFFER_NOT_LOADABLE = 1
FACTORYDATE_AFTER_RANGE = 2
FACTORYDATE_BEFORE_RANGE = 3
FACTORYDATE_INVALID = 4
FACTORY_CALENDAR_ID_MISSING = 5
FACTORY_CALENDAR_NOT_FOUND = 6
OTHERS = 7.
* result value of the routine
RESULT = L_DATE.
Maybe you are looking for
-
Any app in OS X Mavericks unable to detect location after updating
I'm using MacBook Air (late 2013) & OS X Maverick 10.9.3 on it. I'm facing to this problem since I updated to 10.9.2 from 10.9.1. Like no any app from Maps, Twitter, Facebook is able to detect location. Earlier it was able to. Mean, when I
-
Hi , which are the idocs and Bapis used in Fi module. How can i search idocs for certain modules. Thanks & regards, Chetan Sakunde
-
Domain for data type in Oracle 8i database
Hi Sir, Does Oracle database supports domain creation for data type. for example, can I create a domain called shorttext which is VARCHAR2(50). Then when I specify a data type for a column in table, then I just declare the column as domain. eg. addre
-
Sound problem: I want to restore factory settings, but...
My iPhone 4S is having all kind of sound-related bugs, and I'd like to restore it to factory settings, hoping to get rid of these problems. But I've read many times, that iOs 8 and 4s are not a good match. Is there any way I can restore my iPhone to
-
HT1420 De authorizing crashed computer
How do you de authorize a computer that has crashed & no longer works? Or one you don't have anymore