SAP BW hierarchies into Microstrategy
Hi,
I'm just wondering if there is a way of bringing BW/BI Hierarchies into Microstrategy reporting.
We are planning to report in Microstrategy on top of a BW infocube with data. everything is OK except we can't bring SAP hierarchies into a Microstrategy report.
I appreciate if someone could shed ideas on this.
Hari Immadi
http://immadi.com
SEM BW Analyst
Immadi,
In SAP BI Hierarchies are stored externally and not within the infocube. However for many Data Warehousing systems - the hierarchy is stored within the infocube. I am not sure if Microstrategy supports external hierarchies...
Similar Messages
-
Steps to load Hierarchies into BPC
Hi All
I am new to SAP BPC.I have the following doubts on BPC.
1.Can anyone let me know how to load hierarchies into BPC. If you have any links which explain this procedure its appreciated you pass on it to me.
2. Difference between Planning and Forecasting.
Thanks and Appreciate your quick response.
Thanks & Regards
arkHi Ark-
There is an excellent paper on how to load master data (including hierarchies) into BPC located at:
[https://wiki.sdn.sap.com/wiki/display/BPX/Enterprise%20Performance%20Management%20%28EPM%29%20How-to%20Guides|https://wiki.sdn.sap.com/wiki/display/BPX/Enterprise%20Performance%20Management%20%28EPM%29%20How-to%20Guides]
The article is titled: "How Tou2026 Automate BPC 7.0, version for the NetWeaver Platform Master Data Loads from BW to BPC".
Planning and Forecasting are business processes. Planning implies a process that is invoked to predict future performance. More typically businesses use the terms Budgeting and Forecasting to describe how far out in time a prediction is made. Budgeting is a process that delivers at least a full future year of performance expectations. Forecasting is very similar to Budgeting forward looking view; however forecasting is typically focused on the current year's performance. Forecasting will typically combine some actual values with a projection of the balance of the current year's anticipated results. Each customer may call these activities by their own internal naming conventions.
Regards,
Sheldon -
BI 7 : Command to export a table structure of SAP R/3 into a script/text ?
Hi All.
Greetings.
Am New to SAP R/3 system. And request help.
We are trying to pull data from SAP R/3 thro Bussiness Objects Data Services into Oracle.
For now : we create a target oracle table looking at the table structure of SAP R/3 from SE 11.
In BODS, We then do the query transformation, and use the oracle target table created by us manually.
This works absolutely fine.
We would like to know the command by which we could export the table structure of any existing table
in SAP R/3 into a script / or to text file,
which we could use to create the same table structure in oracle.
Rather than manually typing some 200 field names for each tables.
Can anyone advise on this.
Thanks
InduHello,
The problem is caused due to the spaces in your directories
C:\SAP Dumps\Core Release SR1 Export_CD1_51019634/DB/ADA/DBSIZE.XML
Replace the spaces with underscores and restart the installation from from scratch.
Cheers
Bert -
Data transfer from sap r/3 into excel sheet for mi01
hi gurus,
as i am a xi consultant i got requirement to write a program for data transfer from sap r/3 into excel sheet for MI01.can any body help me by giving sample code or example for this requirement.please help me.Hi Rohit,
This is an upload program and it has used both function modules to upload from an excel to R3 and to download from R3 onto excel.
GUI_UPLOAD
GUI_DOWNLOAD
are the function modules used.
Hope this helps,
*Output: Downloads error records onto presentation server,
* Displays report with number of success and error records
REPORT ZMCG047CONTR NO STANDARD PAGE HEADING
LINE-SIZE 255
MESSAGE-ID ZM.
*& Table declarations
TABLES : T001W, "Plants/Branches
T024E, "Purchasing Organizations
T001. "Company Codes
* TYPE-POOLS DECLARATION
TYPE-POOLS : SLIS.
* Types Declaration *
TYPES: BEGIN OF T_RECORD, "record storing contract info
LIFNR(010), "Vendor Number
EVART(004), "Agreement Type
EKORG(004), "Purchasing Organization
EKGRP(003), "Purchasing Group
WERKS(004), "Plant
LGORT(004), "Storage Location
KDATB(010), "Valid start Date
KDATE(010), "Valid End Date
ZTERM(004), "Payment Terms
KTWRT(020), "Target Value
EPSTP(001), "Item Category
EMATN(018), "Material Number
KTMNG(017), "Target Quantity
NETPR(014), "Net Price
PEINH(006), "Net Price Unit
BPRME(003), "Net Price Order Price Unit
IDNLF(035), "Vendor Material number
WEBRE(001), "GR Based-IV
MEPRF(001), "Pricing Date Category
LTEX1(040), "Info Text
DATAB(010), "Valid From
DATBI(010), "Valid To
KSCHL(004), "Condition Type
KBETR(016), "Condition Rate if scale is not given
KONWA(005), "Currency
KPEIN(005), "Condition Pricing Unit
KMEIN(003), "Condition Unit of Measure
KSTBM(019), "Scale
KBETR_01(016), "Scale Rate
DEL_FLAG, "Delete Flag Indicator
ERR_MSG(100), "Error Message
END OF T_RECORD,
BEGIN OF T_ERR_RECORD, "to have error records stored
LIFNR(010), "Vendor Number
EVART(004), "Agreement Type
EKORG(004), "Purchasing Organization
EKGRP(003), "Purchasing Group
WERKS(004), "Plant
LGORT(004), "Storage Location
KDATB(010), "Valid start Date
KDATE(010), "Valid End Date
ZTERM(004), "Payment Terms
KTWRT(020), "Target Value
EPSTP(001), "Item Category
EMATN(018), "Material Number
KTMNG(017), "Target Quantity
NETPR(014), "Net Price
PEINH(006), "Net Price Unit
BPRME(003), "Net Price Order Price Unit
IDNLF(035), "Vendor Material number
WEBRE(001), "GR Based-IV
MEPRF(001), "Pricing Date Category
LTEX1(040), "Info Text
DATAB(010), "Valid From
DATBI(010), "Valid To
KSCHL(004), "Condition Type
KBETR(016), "Condition Rate if scale is not given
KONWA(005), "Currency
KPEIN(005), "Condition Pricing Unit
KMEIN(003), "Condition Unit of Measure
KSTBM(019), "Scale
KBETR_01(016), "Scale Rate
DEL_FLAG, "Delete Flag Indicator
ERR_MSG(100), "Error Message
END OF T_ERR_RECORD,
BEGIN OF T_LOEKZ, "To have deletion indicators for materials
LOEKZ(001), "Deletion indicator in purchasing document
EMATN(018), "Material Number
WERKS(004), "Plant
LGORT(004), "Storage Location
BSTYP(001), "Purchasing document category
END OF T_LOEKZ,
BEGIN OF T_MATNR, " Type definition to store details of materials
MATNR(018), "Material Number
END OF T_MATNR,
BEGIN OF T_T001, " Type definition for company codes
BUKRS(004), " Company Code
END OF T_T001,
BEGIN OF T_ZMVXREF, "Cross-Reference table type
D_ALTKN(10), "Legacy Vendor Number
D_BUKRS(4), "Legacy Company Code
M_ALTKN(10), "SAP Company Code
END OF T_ZMVXREF,
BEGIN OF T_LFA1, "Master data of vendors
LIFNR(10), "Vendor Number
END OF T_LFA1,
* Type Declaration for T024E (Company Codes)
BEGIN OF T_T024E,
EKORG LIKE T024E-EKORG, "Purchasing organization
BUKRS LIKE T024E-BUKRS, "Company Code
END OF T_T024E,
* Type Declaration for t001w (Plant)
BEGIN OF T_T001W,
WERKS LIKE T001W-WERKS, "Plant
END OF T_T001W,
* Type Declatation for String Line
BEGIN OF T_STR1, "#EC NEEDED
SLINE(6000) TYPE C,
END OF T_STR1.
TYPES: BEGIN OF T_BDCDATA. "BDC Data
INCLUDE STRUCTURE BDCDATA.
TYPES: END OF T_BDCDATA.
* Internal Tables Declaration *
DATA:
* Internal table to store input file data
I_RECORD TYPE STANDARD TABLE OF T_RECORD INITIAL SIZE 0,
* Internal table to capture errors
I_ERR_REC TYPE STANDARD TABLE OF T_ERR_RECORD INITIAL SIZE 0,
* Internal table to check for deletion indicators
I_LOEKZ TYPE STANDARD TABLE OF T_LOEKZ INITIAL SIZE 0,
* Internal table to check for material numbers
I_MATNR TYPE STANDARD TABLE OF T_MATNR INITIAL SIZE 0,
* Internal table used for storing Cross-Reference data of Vendor
I_ZMVXREF TYPE STANDARD TABLE OF T_ZMVXREF INITIAL SIZE 0,
* Internal table for holding Vendor Numbers from Master table
I_LFA1 TYPE STANDARD TABLE OF T_LFA1 INITIAL SIZE 0,
* Internal table for holding Purchase Org and Company Codes
I_T024E TYPE STANDARD TABLE OF T_T024E INITIAL SIZE 0,
* Internal table for holding Plants
I_T001W TYPE STANDARD TABLE OF T_T001W INITIAL SIZE 0,
* Internal table for storing a list of Company Codes
I_T001 TYPE STANDARD TABLE OF T_T001 INITIAL SIZE 0,
* Internal table used for ALV Reporting
I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
* Internal table used for holding List Header
I_LISTHEADER TYPE SLIS_T_LISTHEADER, "EC NEEDED
* Internal table to hold ALV Event
I_ALV_EVENT TYPE SLIS_T_EVENT,
* Internal table to hold Sort Info for ALV Report
I_SORT TYPE SLIS_T_SORTINFO_ALV,
* Internal table for BDC Data
I_BDCDATA TYPE STANDARD TABLE OF T_BDCDATA INITIAL SIZE 0,
* Internal table for messages
I_MESSTAB TYPE TABLE OF BDCMSGCOLL,
* Internal table for String line
I_STR1 TYPE STANDARD TABLE OF T_STR1 INITIAL SIZE 0.
* Work Area Declaration *
DATA:
* Work Area to hold data for the Open Contract
WA_RECORD TYPE T_RECORD,
* Work Area to hold previous record data
WA_RECORDPREV TYPE T_RECORD,
* Work Area to hold errors
WA_ERR_REC TYPE T_ERR_RECORD,
* Work Area to hold the Deletion Indicator of materials
WA_LOEKZ TYPE T_LOEKZ,
* Work Area to hold Material numbers of required materials
WA_MATNR TYPE T_MATNR, "EC NEEDED
* Work Area to hold errors occured while performing BDC
WA_MESSTAB TYPE BDCMSGCOLL,
* Work Area to hold field catalog for ALV Reports
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
* Work Area to hold list header data for ALV reports
WA_LISTHEADER TYPE SLIS_LISTHEADER,
* Work Area to hold ALV Event
WA_ALV_EVENT LIKE LINE OF I_ALV_EVENT, "EC NEEDED
* Work Area to hold Layout of ALV Report
WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
* Work Area to hold Cross-Reference data of Vendor
WA_ZMVXREF TYPE T_ZMVXREF,
* Work Area to hold Vendor Numbers from Master table
WA_LFA1 TYPE T_LFA1, "EC NEEDED
* Work Area to hold Purchase Org and Company Codes
WA_T024E TYPE T_T024E,
* Work Area to hold Company Codes
WA_T001 TYPE T_T001,
* Work Area to hold Plants
WA_T001W TYPE T_T001W,
* Work Area to hold Sort Info for ALV Report
WA_SORT TYPE SLIS_SORTINFO_ALV,
* Work Area to hold BDC Data
WA_BDCDATA TYPE T_BDCDATA,
* Work Area for String line
WA_STR1 TYPE T_STR1.
* Variables Declaration *
DATA: V_ERRMSG(500), "To temporarily store the error message
V_CONV_DATE(10) TYPE C, "To capture the converted date format
V_DATE LIKE SY-DATUM,
V_REPID LIKE SY-REPID, "holds report id
V_CROSS_REFERENCE_ERROR TYPE I, " cross-reference error
V_INPUTERROR_FLAG VALUE '', " input error status
V_FILENAME TYPE STRING, " File Name
VEN_FLAG(1), " at new status
MAT_FLAG(1), " at new status
V_IND(2) TYPE N, " index of table control
V_IND2(2) TYPE N, " index of table control
V_IND3(2) TYPE N, " index of table control
V_EVRTP1(20),
V_EPSTP1(20),
V_EMATN1(20),
V_KTMNG1(20),
V_NETPR1(20),
V_PEINH1(20),
V_BPRME1(20),
V_TCSELFLAG1(20),
V_KSCHL2(20),
V_KBETR2(20),
V_KONWA2(20),
V_KPEIN2(20),
V_KMEIN2(20),
V_SELKZ2(20),
V_KBETR3(20),
V_KSTBM3(20),
V_LINE TYPE I,
V_STR TYPE X VALUE '09',
V_EXIST TYPE C,
V_EXIST1 TYPE C,
V_ISDIR TYPE C,
V_ISDIR1 TYPE C.
* Constants Declaration *
CONSTANTS: C_TCODE(5) VALUE 'ME31K', "Trx code - Open Contract Creation
C_TRUE VALUE 'X', " Del_Flag indicator
C_LOEKZ_MARKED VALUE 'X', "Deletion indicator for material
C_INPUTERROR_FLAG_YES VALUE 'X', "Input File Indicator
C_VEN_ERR1 VALUE 1, "Error Indicator
C_16(2) VALUE '16',
C_VEN_ERR2 VALUE 2, "Error Indicator
C_VEN_ERR3 VALUE 3, "Error Indicator
C_VEN_SUCS VALUE 0, "Success Indicator
C_SUCCESS LIKE SY-SUBRC VALUE '0',
C_STRUE VALUE 'S', "Del_flag for SAP Errors
C_YTRUE VALUE 'Y', "Del_flag for Success Records
C_MSGTYP_E VALUE 'E', "holds error message type
C_MSGTYP_S VALUE 'S', "holds success message type
C_BSTYP VALUE 'K', "Purchasing Document type is Contract
C_BACKGROUND VALUE 'N', "Background mode
C_FOREGROUND VALUE 'A', "All Screen mode
C_ERRORS VALUE 'E', "Error screen mode
C_WK(2) VALUE 'WK'. "Value Contract
* Selection Screen *
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-033.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS:
* Plant
S_WERKS FOR T001W-WERKS OBLIGATORY,
* Purchase Organization
S_EKORG FOR T024E-EKORG OBLIGATORY.
* Company Code
PARAMETER P_BUKRS LIKE T001-BUKRS OBLIGATORY.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN ULINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 3.
PARAMETER RB_SERVE RADIOBUTTON GROUP RBX DEFAULT 'X' USER-COMMAND U1.
SELECTION-SCREEN COMMENT 6(19) TEXT-036.
SELECTION-SCREEN POSITION 37.
PARAMETER RB_LOCAL RADIOBUTTON GROUP RBX.
SELECTION-SCREEN COMMENT 40(13) TEXT-035.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP.
PARAMETERS:
* Parameter holding Input File name
P_FILE LIKE RLGRAP-FILENAME
OBLIGATORY
LOWER CASE
DEFAULT 'C:\'
MODIF ID G1,
P_FILE1 LIKE RLGRAP-FILENAME
OBLIGATORY
LOWER CASE
DEFAULT '/celestica/interface/corp/in/work/'
MODIF ID G2,
* Parameter specifying Mode of calling the Transaction.
P_MODE DEFAULT 'N' OBLIGATORY,
* Check box used to test the input file.
P_TEST AS CHECKBOX DEFAULT 'X',
* Parameter holding Filename for holding Input File Errors
P_IPERR LIKE RLGRAP-FILENAME
OBLIGATORY
LOWER CASE
DEFAULT 'C:\'
MODIF ID G1,
P_IPERR1 LIKE RLGRAP-FILENAME
OBLIGATORY
LOWER CASE
DEFAULT '/celestica/interface/corp/in/work/047_Err.txt'
MODIF ID G2.
SELECTION-SCREEN END OF BLOCK B2.
* AT Selection Screen Events *
* Loop the screen to activate relative paths
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF RB_SERVE = C_TRUE AND SCREEN-GROUP1 = 'G1'.
SCREEN-OUTPUT = 0.
SCREEN-ACTIVE = 0.
SCREEN-INPUT = 0.
ELSEIF RB_LOCAL = C_TRUE AND SCREEN-GROUP1 = 'G2'.
SCREEN-OUTPUT = 0.
SCREEN-ACTIVE = 0.
SCREEN-INPUT = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
AT SELECTION-SCREEN ON BLOCK B2.
* Checking Access Authorization for the user
CALL FUNCTION 'ZU_DATA_ACCESS_AUTH_CHECK'
EXPORTING
ACTVT = C_16
P_BUKRS = P_BUKRS
TABLES
S_WERKS = S_WERKS
S_EKORG = S_EKORG
EXCEPTIONS
BUKRS_FAILED = 1
VKORG_FAILED = 2
VTWEG_FAILED = 3
EKORG_FAILED = 4
WERKS_FAILED = 5
LGNUM_FAILED = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
AT SELECTION-SCREEN ON P_BUKRS.
IF NOT P_BUKRS IS INITIAL.
SELECT SINGLE BUKRS INTO T001
FROM T001
WHERE BUKRS EQ P_BUKRS.
IF SY-SUBRC NE 0.
MESSAGE I000 WITH TEXT-089.
STOP.
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
* Search Help to select Input File path.
PERFORM GET_FILE_NAME USING P_FILE.
* Check for the existence of the file.
IF RB_LOCAL EQ C_TRUE.
CALL FUNCTION 'TMP_GUI_GET_FILE_EXIST'
EXPORTING
FNAME = P_FILE
IMPORTING
EXIST = V_EXIST
ISDIR = V_ISDIR
EXCEPTIONS
FILEINFO_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.
IF V_ISDIR IS INITIAL.
IF V_EXIST IS INITIAL.
MESSAGE I000 WITH TEXT-018.
STOP.
ENDIF.
ELSEIF V_ISDIR EQ C_TRUE.
MESSAGE I000 WITH TEXT-068.
STOP.
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_IPERR.
* Search Help to select Input Error File path.
PERFORM GET_FILE_NAME USING P_IPERR.
AT SELECTION-SCREEN.
* Validate Transaction Mode
IF P_MODE <> C_BACKGROUND AND
P_MODE <> C_FOREGROUND AND
P_MODE <> C_ERRORS.
MESSAGE I000 WITH TEXT-034.
STOP.
ENDIF.
START-OF-SELECTION.
* Get the Input File Data
V_FILENAME = P_FILE.
PERFORM UPLOAD_FLATFILE_DATA TABLES I_RECORD
USING V_FILENAME.
* Sorting the data by all fields
SORT I_RECORD.
* Ensuring the padding of the empty spaces before the vendor No
CLEAR WA_RECORD.
LOOP AT I_RECORD INTO WA_RECORD.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_RECORD-LIFNR
IMPORTING
OUTPUT = WA_RECORD-LIFNR.
MODIFY I_RECORD FROM WA_RECORD
INDEX SY-TABIX
TRANSPORTING LIFNR.
CLEAR WA_RECORD.
ENDLOOP.
* Input file validation
PERFORM VALIDATE_FLATFILE_DATA.
IF P_TEST = C_TRUE.
IF I_ERR_REC[] IS INITIAL.
MESSAGE I000 WITH TEXT-032.
STOP.
ELSE.
* Display all the error records at the input level.
PERFORM DISPLAY_INPERR_RECORDS.
* Download Error File
PERFORM DOWNLOAD_ERROR_FILE.
ENDIF.
ELSE.
* Build BDC Data
PERFORM BUILD_BDC_DATA.
* Download Error File
PERFORM DOWNLOAD_ERROR_FILE.
* Display the status report.
PERFORM DISPLAY_PROCESSED_RECORDS.
ENDIF.
END-OF-SELECTION.
REFRESH: I_RECORD,
I_ERR_REC,
I_LOEKZ,
I_MATNR,
I_ZMVXREF,
I_LFA1,
I_T024E,
I_FIELDCAT,
I_LISTHEADER,
I_ALV_EVENT,
I_SORT,
I_BDCDATA,
I_MESSTAB,
I_STR1.
FREE: I_RECORD,
I_ERR_REC,
I_LOEKZ,
I_MATNR,
I_ZMVXREF,
I_LFA1,
I_T024E,
I_FIELDCAT,
I_LISTHEADER,
I_ALV_EVENT,
I_SORT,
I_BDCDATA,
I_MESSTAB,
I_STR1.
*& Form GET_file_name
* Fetches the file and path from the presentation system
* --> p1 Path along with the file name
FORM GET_FILE_NAME USING L_FILE LIKE RLGRAP-FILENAME.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
MASK = ',*.TXT,*.txt.'
MODE = 'O'
TITLE = TEXT-011
IMPORTING
FILENAME = L_FILE
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
CASE SY-SUBRC.
WHEN 1.
MESSAGE I000 WITH TEXT-084.
STOP.
WHEN 2.
MESSAGE I000 WITH TEXT-085.
STOP.
WHEN 3.
MESSAGE I000 WITH TEXT-086.
STOP.
WHEN 4.
MESSAGE I000 WITH TEXT-087.
STOP.
ENDCASE.
ENDFORM. " GET_file_name
*& Form upload_flatfile_data
* Uploading data from Flat File
FORM UPLOAD_FLATFILE_DATA
TABLES I_L_RECORD STRUCTURE WA_RECORD
USING L_FILENAME TYPE STRING.
DATA WA_L_RECORD TYPE T_RECORD.
* Upload the Flat file data
IF RB_LOCAL EQ C_TRUE. "File is on the Local System
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = L_FILENAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = I_L_RECORD
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
CASE SY-SUBRC.
WHEN 0.
DESCRIBE TABLE I_L_RECORD LINES V_LINE.
IF V_LINE EQ 0.
MESSAGE I000 WITH TEXT-065.
STOP.
ENDIF.
WHEN 1.
MESSAGE I000 WITH TEXT-068.
STOP.
WHEN 2.
MESSAGE I000 WITH TEXT-069.
STOP.
WHEN 3.
MESSAGE I000 WITH TEXT-070.
STOP.
WHEN 4.
MESSAGE I000 WITH TEXT-071.
STOP.
WHEN 5.
MESSAGE I000 WITH TEXT-072.
STOP.
WHEN 6.
MESSAGE I000 WITH TEXT-073.
STOP.
WHEN 7.
MESSAGE I000 WITH TEXT-074.
STOP.
WHEN 8.
MESSAGE I000 WITH TEXT-075.
STOP.
WHEN 9.
MESSAGE I000 WITH TEXT-076.
STOP.
WHEN 10.
MESSAGE I000 WITH TEXT-077.
STOP.
WHEN 11.
MESSAGE I000 WITH TEXT-078.
STOP.
WHEN 12.
MESSAGE I000 WITH TEXT-079.
STOP.
WHEN 13.
MESSAGE I000 WITH TEXT-080.
STOP.
WHEN 14.
MESSAGE I000 WITH TEXT-081.
STOP.
WHEN 15.
MESSAGE I000 WITH TEXT-082.
STOP.
WHEN 16.
MESSAGE I000 WITH TEXT-083.
STOP.
ENDCASE.
CLEAR V_LINE.
ELSEIF RB_SERVE EQ C_TRUE. "File is on the Application Server
P_MODE = C_BACKGROUND.
OPEN DATASET P_FILE1 FOR INPUT IN TEXT MODE.
CHECK SY-SUBRC EQ C_SUCCESS.
CLEAR WA_STR1.
DO.
READ DATASET P_FILE1 INTO WA_STR1.
IF SY-SUBRC <> 0. " NE SUCCESS.
EXIT.
ELSEIF SY-SUBRC EQ C_SUCCESS.
APPEND WA_STR1 TO I_STR1.
CLEAR WA_STR1.
ENDIF. " ENDIF on SY-SUBRC 0 Check.
ENDDO. " ENDDO
DELETE I_STR1 WHERE SLINE EQ ' '.
DESCRIBE TABLE I_STR1 LINES V_LINE.
IF V_LINE EQ 0.
MESSAGE S000 WITH TEXT-065.
STOP.
ENDIF.
LOOP AT I_STR1 INTO WA_STR1.
CLEAR: WA_L_RECORD.
SPLIT WA_STR1-SLINE AT V_STR
INTO WA_L_RECORD-LIFNR
WA_L_RECORD-EVART
WA_L_RECORD-EKORG
WA_L_RECORD-EKGRP
WA_L_RECORD-WERKS
WA_L_RECORD-LGORT
WA_L_RECORD-KDATB
WA_L_RECORD-KDATE
WA_L_RECORD-ZTERM
WA_L_RECORD-KTWRT
WA_L_RECORD-EPSTP
WA_L_RECORD-EMATN
WA_L_RECORD-KTMNG
WA_L_RECORD-NETPR
WA_L_RECORD-PEINH
WA_L_RECORD-BPRME
WA_L_RECORD-IDNLF
WA_L_RECORD-WEBRE
WA_L_RECORD-MEPRF
WA_L_RECORD-LTEX1
WA_L_RECORD-DATAB
WA_L_RECORD-DATBI
WA_L_RECORD-KSCHL
WA_L_RECORD-KBETR
WA_L_RECORD-KONWA
WA_L_RECORD-KPEIN
WA_L_RECORD-KMEIN
WA_L_RECORD-KSTBM
WA_L_RECORD-KBETR_01
WA_L_RECORD-DEL_FLAG
WA_L_RECORD-ERR_MSG.
APPEND WA_L_RECORD TO I_L_RECORD.
CLEAR: WA_L_RECORD,
WA_STR1.
ENDLOOP.
REFRESH I_STR1.
CLOSE DATASET P_FILE1.
ENDIF.
ENDFORM.
*& Form BDC_DYNPRO
* Data populated into i_bdcdata table for program
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR WA_BDCDATA.
WA_BDCDATA-PROGRAM = PROGRAM.
WA_BDCDATA-DYNPRO = DYNPRO.
WA_BDCDATA-DYNBEGIN = C_TRUE.
APPEND WA_BDCDATA TO I_BDCDATA.
ENDFORM.
*& Form BDC_FIELD
* Data populated into i_bdcdata table for fields
FORM BDC_FIELD USING FNAM FVAL.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO I_BDCDATA.
ENDFORM.
*& Form convert_date
* Converting the data from the file format to mm/dd/yyyy format
* <--P_wa_record_kdatb Source Date
* <--p_l_conv_date Target Date
FORM CONVERT_DATE USING L_DATE
L_TAR_DATE.
CONCATENATE L_DATE+0(2)
L_DATE+3(2)
L_DATE+6(4)
INTO L_TAR_DATE.
ENDFORM. " convert_date
*& Form validate_flatfile_data
* Validating the input file
FORM VALIDATE_FLATFILE_DATA.
DATA: L_TODAY LIKE SY-DATUM,
L_STARTDATE_C LIKE SY-DATUM,
L_ENDDATE_C LIKE SY-DATUM,
L_ENDDATE_C1 LIKE SY-DATUM,
L_STARTDATE_C1 LIKE SY-DATUM,
L_STARTDATE(8),
L_ENDDATE(8).
* Fetch indicator for all records on the material, plant & storage
* location combination.
IF NOT I_RECORD[] IS INITIAL.
REFRESH I_LOEKZ.
SELECT EMATN " Material Number
WERKS " Plant
LGORT " Storage Location
BSTYP " Purchasing Document Category
LOEKZ " Deletion indicator
INTO TABLE I_LOEKZ
FROM EKPO
FOR ALL ENTRIES IN I_RECORD
WHERE EMATN = I_RECORD-EMATN
AND WERKS = I_RECORD-WERKS
AND LGORT = I_RECORD-LGORT
AND BSTYP = C_BSTYP
AND LOEKZ = C_LOEKZ_MARKED.
IF SY-SUBRC EQ 0.
SORT I_LOEKZ BY EMATN WERKS LGORT BSTYP LOEKZ.
ENDIF.
* Fetching Plants for all entries in the selection screen
REFRESH I_T001W.
SELECT WERKS "Plant
INTO TABLE I_T001W
FROM T001W
WHERE WERKS IN S_WERKS.
IF SY-SUBRC EQ 0.
SORT I_T001W BY WERKS.
ENDIF.
* Fetching materials for the plants listed in flat file
REFRESH I_MATNR.
SELECT MATNR " Material Number
INTO TABLE I_MATNR
FROM MARC
FOR ALL ENTRIES IN I_RECORD
WHERE WERKS = I_RECORD-WERKS.
IF SY-SUBRC EQ 0.
SORT I_MATNR BY MATNR.
ENDIF.
* Fetching Company Codes for repective Purchase Organizations
REFRESH I_T024E.
SELECT EKORG " Purchase Organization
BUKRS " Company Code
INTO TABLE I_T024E
FROM T024E
WHERE EKORG IN S_EKORG.
IF SY-SUBRC EQ 0.
SORT I_T024E BY EKORG.
ENDIF.
* Fetching SAP Data using Legacy Data.
REFRESH I_ZMVXREF.
SELECT D_ALTKN
D_BUKRS
M_ALTKN
INTO TABLE I_ZMVXREF
FROM ZMVXREF
FOR ALL ENTRIES IN I_RECORD
WHERE D_ALTKN = I_RECORD-LIFNR.
IF SY-SUBRC EQ 0.
SORT I_ZMVXREF BY D_ALTKN D_BUKRS.
ENDIF.
* Fetching Vendors from LFA1
IF NOT I_ZMVXREF[] IS INITIAL.
REFRESH I_LFA1.
SELECT LIFNR
INTO TABLE I_LFA1
FROM LFA1
FOR ALL ENTRIES IN I_ZMVXREF
WHERE LIFNR = I_ZMVXREF-M_ALTKN.
IF SY-SUBRC EQ 0.
SORT I_LFA1 BY LIFNR.
ENDIF.
ENDIF.
* Start Validating the flat file
CLEAR: WA_RECORD,
WA_T024E,
WA_ZMVXREF,
WA_LFA1,
WA_LOEKZ,
WA_MATNR.
LOOP AT I_RECORD INTO WA_RECORD.
L_TODAY = SY-DATUM.
L_STARTDATE = WA_RECORD-KDATB.
L_ENDDATE = WA_RECORD-KDATE.
IF WA_RECORD-DEL_FLAG IS INITIAL.
READ TABLE I_T001W INTO WA_T001W
WITH KEY WERKS = WA_RECORD-WERKS
BINARY SEARCH.
IF SY-SUBRC EQ 0.
* Cross-Reference check performed for the given Vendors
READ TABLE I_T024E INTO WA_T024E
WITH KEY EKORG = WA_RECORD-EKORG
BINARY SEARCH.
IF SY-SUBRC NE 0.
V_CROSS_REFERENCE_ERROR = C_VEN_ERR3.
ELSE.
READ TABLE I_ZMVXREF INTO WA_ZMVXREF
WITH KEY D_ALTKN = WA_RECORD-LIFNR
D_BUKRS = P_BUKRS
BINARY SEARCH.
IF SY-SUBRC EQ 0.
READ TABLE I_LFA1 INTO WA_LFA1
WITH KEY LIFNR = WA_ZMVXREF-M_ALTKN
BINARY SEARCH.
IF SY-SUBRC EQ 0.
V_CROSS_REFERENCE_ERROR = C_VEN_SUCS.
ELSE.
V_CROSS_REFERENCE_ERROR = C_VEN_ERR2.
ENDIF.
ELSE.
V_CROSS_REFERENCE_ERROR = C_VEN_ERR1.
ENDIF.
ENDIF.
* Legacy Vendor could not be mapped
IF V_CROSS_REFERENCE_ERROR EQ C_VEN_ERR1.
V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES. "Inp.file err. occurd
WA_RECORD-DEL_FLAG = C_TRUE.
WA_RECORD-ERR_MSG = TEXT-007.
MODIFY I_RECORD FROM WA_RECORD
TRANSPORTING DEL_FLAG
ERR_MSG
WHERE LIFNR = WA_RECORD-LIFNR.
* Legacy Vendor is mapped but the obtained SAP vendor doesn't exist.
ELSEIF V_CROSS_REFERENCE_ERROR EQ C_VEN_ERR2.
* Inp.file err. occurd
V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
WA_RECORD-DEL_FLAG = C_TRUE.
WA_RECORD-ERR_MSG = TEXT-008.
MODIFY I_RECORD FROM WA_RECORD
TRANSPORTING DEL_FLAG
ERR_MSG
WHERE LIFNR = WA_RECORD-LIFNR.
* Purchase Organization doesn't exist in T024E.
ELSEIF V_CROSS_REFERENCE_ERROR EQ C_VEN_ERR3.
* Inp.file err. occurd
V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
WA_RECORD-DEL_FLAG = C_TRUE.
WA_RECORD-ERR_MSG = TEXT-014.
MODIFY I_RECORD FROM WA_RECORD
TRANSPORTING DEL_FLAG
ERR_MSG
WHERE EKORG = WA_RECORD-EKORG.
* Vendor is mapped and validated successfully
ELSEIF V_CROSS_REFERENCE_ERROR EQ C_VEN_SUCS.
* Checking for the deletion indicator for that record
CONCATENATE WA_RECORD-KDATB+6(4)
WA_RECORD-KDATB+3(2)
WA_RECORD-KDATB+0(2)
INTO
L_STARTDATE.
MOVE L_STARTDATE TO L_STARTDATE_C.
CONCATENATE WA_RECORD-KDATB+6(4)
WA_RECORD-KDATB+0(2)
WA_RECORD-KDATB+3(2)
INTO
L_STARTDATE_C1.
CONCATENATE WA_RECORD-KDATE+6(4)
WA_RECORD-KDATE+3(2)
WA_RECORD-KDATE+0(2)
INTO
L_ENDDATE.
MOVE L_ENDDATE TO L_ENDDATE_C.
CONCATENATE WA_RECORD-KDATE+6(4)
WA_RECORD-KDATE+0(2)
WA_RECORD-KDATE+3(2)
INTO
L_ENDDATE_C1.
READ TABLE I_LOEKZ INTO WA_LOEKZ WITH KEY
EMATN = WA_RECORD-EMATN
WERKS = WA_RECORD-WERKS
LGORT = WA_RECORD-LGORT
BINARY SEARCH.
IF SY-SUBRC EQ 0.
* Inpfle err.occured
V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
WA_RECORD-ERR_MSG = TEXT-003.
WA_RECORD-DEL_FLAG = C_TRUE. "marking the record
MODIFY I_RECORD FROM WA_RECORD
TRANSPORTING DEL_FLAG
ERR_MSG
WHERE LIFNR = WA_RECORD-LIFNR
AND EVART = WA_RECORD-EVART
AND EKORG = WA_RECORD-EKORG
AND EKGRP = WA_RECORD-EKGRP
AND WERKS = WA_RECORD-WERKS
AND LGORT = WA_RECORD-LGORT
AND KDATB = WA_RECORD-KDATB
AND KDATE = WA_RECORD-KDATE
AND ZTERM = WA_RECORD-ZTERM
AND KTWRT = WA_RECORD-KTWRT
AND EPSTP = WA_RECORD-EPSTP
AND EMATN = WA_RECORD-EMATN.
* Validating the Purchasing Organization for Blank/Null
ELSEIF WA_RECORD-EKORG IS INITIAL.
* Inpfle err.occured
V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
WA_RECORD-ERR_MSG = TEXT-010.
WA_RECORD-DEL_FLAG = C_TRUE.
MODIFY I_RECORD FROM WA_RECORD
TRANSPORTING DEL_FLAG
ERR_MSG
WHERE LIFNR = WA_RECORD-LIFNR
AND EVART = WA_RECORD-EVART
AND EKORG = WA_RECORD-EKORG
AND EKGRP = WA_RECORD-EKGRP
AND WERKS = WA_RECORD-WERKS
AND LGORT = WA_RECORD-LGORT
AND KDATB = WA_RECORD-KDATB
AND KDATE = WA_RECORD-KDATE
AND ZTERM = WA_RECORD-ZTERM
AND KTWRT = WA_RECORD-KTWRT
AND EPSTP = WA_RECORD-EPSTP
AND EMATN = WA_RECORD-EMATN.
* Validating the Plant for Blank/Null
ELSEIF WA_RECORD-WERKS IS INITIAL.
* Inpfle err.occured
V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
WA_RECORD-ERR_MSG = TEXT-039.
WA_RECORD-DEL_FLAG = C_TRUE.
MODIFY I_RECORD FROM WA_RECORD
TRANSPORTING DEL_FLAG
ERR_MSG
WHERE LIFNR = WA_RECORD-LIFNR
AND EVART = WA_RECORD-EVART
AND EKORG = WA_RECORD-EKORG
AND EKGRP = WA_RECORD-EKGRP
AND WERKS = WA_RECORD-WERKS
AND LGORT = WA_RECORD-LGORT
AND KDATB = WA_RECORD-KDATB
AND KDATE = WA_RECORD-KDATE
AND ZTERM = WA_RECORD-ZTERM
AND KTWRT = WA_RECORD-KTWRT
AND EPSTP = WA_RECORD-EPSTP
AND EMATN = WA_RECORD-EMATN.
* Validating the Contract Validity Start Date
ELSEIF L_STARTDATE_C1 GT L_TODAY. "#EC PORTABLE
* Inpfle err.occured
V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
WA_RECORD-ERR_MSG = TEXT-004.
WA_RECORD-DEL_FLAG = C_TRUE. "marking the record
MODIFY I_RECORD FROM WA_RECORD
TRANSPORTING DEL_FLAG
ERR_MSG
WHERE LIFNR = WA_RECORD-LIFNR
AND EVART = WA_RECORD-EVART
AND EKORG = WA_RECORD-EKORG
AND EKGRP = WA_RECORD-EKGRP
AND WERKS = WA_RECORD-WERKS
AND LGORT = WA_RECORD-LGORT
AND KDATB = WA_RECORD-KDATB.
* Validating the Contract Validity End Date
ELSEIF L_ENDDATE_C1 LE L_TODAY. "#EC PORTABLE
* Inpfle err.ocrd
V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
WA_RECORD-ERR_MSG = TEXT-005.
WA_RECORD-DEL_FLAG = C_TRUE. "marking the record
MODIFY I_RECORD FROM WA_RECORD
TRANSPORTING DEL_FLAG
ERR_MSG
WHERE LIFNR = WA_RECORD-LIFNR
AND EVART = WA_RECORD-EVART
AND EKORG = WA_RECORD-EKORG
AND EKGRP = WA_RECORD-EKGRP
AND WERKS = WA_RECORD-WERKS
AND LGORT = WA_RECORD-LGORT
AND KDATB = WA_RECORD-KDATB
AND KDATE = WA_RECORD-KDATE.
* Checking for Material under the Plant for Agreement Type 'WK'
ELSEIF WA_RECORD-EVART = C_WK.
READ TABLE I_MATNR INTO WA_MATNR
WITH KEY MATNR = WA_RECORD-EMATN
BINARY SEARCH.
IF SY-SUBRC NE 0.
V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES. "Inpfle err.ocrd
WA_RECORD-ERR_MSG = TEXT-006.
WA_RECORD-DEL_FLAG = C_TRUE. "marking the record
MODIFY I_RECORD FROM WA_RECORD
TRANSPORTING DEL_FLAG
ERR_MSG
WHERE LIFNR = WA_RECORD-LIFNR
AND EVART = WA_RECORD-EVART
AND EKORG = WA_RECORD-EKORG
AND EKGRP = WA_RECORD-EKGRP
AND WERKS = WA_RECORD-WERKS
AND LGORT = WA_RECORD-LGORT
AND KDATB = WA_RECORD-KDATB
AND KDATE = WA_RECORD-KDATE
AND ZTERM = WA_RECORD-ZTERM
AND KTWRT = WA_RECORD-KTWRT
AND EPSTP = WA_RECORD-EPSTP
AND EMATN = WA_RECORD-EMATN.
ENDIF.
ENDIF. " checking of deletion indicator
ENDIF. " checking for success of vendor cross reference
ELSE.
V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES. "Inpfle err.ocrd
WA_RECORD-ERR_MSG = TEXT-041.
WA_RECORD-DEL_FLAG = C_TRUE. "marking the record
MODIFY I_RECORD FROM WA_RECORD
TRANSPORTING DEL_FLAG
ERR_MSG
WHERE WERKS = WA_RECORD-WERKS.
ENDIF. " Plant checked to selection screen
ENDIF. " the records for which del_flag is initial
CLEAR: WA_RECORD,
WA_T024E,
WA_ZMVXREF,
WA_LFA1,
WA_LOEKZ,
WA_MATNR,
L_TODAY,
L_STARTDATE_C,
L_ENDDATE_C,
L_STARTDATE,
L_ENDDATE.
ENDLOOP.
LOOP AT I_RECORD INTO WA_RECORD.
IF WA_RECORD-DEL_FLAG = C_TRUE.
APPEND WA_RECORD TO I_ERR_REC.
CLEAR WA_RECORD.
ENDIF.
ENDLOOP.
ELSE.
MESSAGE E000 WITH TEXT-013. " no records in the flat file
STOP.
ENDIF.
ENDFORM. " validate_flatfile_data
*& Form DOWNLOAD_ERROR_FILE
* Downloads all records along with the records encountering the
* input file validation error
FORM DOWNLOAD_ERROR_FILE.
DATA L_ISDIR TYPE C.
IF V_INPUTERROR_FLAG = C_INPUTERROR_FLAG_YES.
V_FILENAME = P_IPERR.
* Check for the existence of the file.
IF RB_LOCAL EQ C_TRUE.
CALL FUNCTION 'TMP_GUI_GET_FILE_EXIST'
EXPORTING
FNAME = P_IPERR
IMPORTING
ISDIR = L_ISDIR
EXCEPTIONS
FILEINFO_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.
IF L_ISDIR EQ C_TRUE.
MESSAGE I000 WITH TEXT-088.
STOP.
ENDIF.
ENDIF.
IF RB_LOCAL EQ C_TRUE.
* Download the Input Error File.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = V_FILENAME
FILETYPE = 'ASC'
WRITE_FIELD_SEPARATOR = '#'
TABLES
DATA_TAB = I_ERR_REC
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ELSEIF RB_SERVE EQ C_TRUE.
OPEN DATASET P_IPERR1 FOR OUTPUT IN TEXT MODE.
CHECK SY-SUBRC EQ 0.
CLEAR WA_ERR_REC.
LOOP AT I_ERR_REC INTO WA_ERR_REC.
IF WA_ERR_REC-DEL_FLAG = C_TRUE.
TRANSFER WA_ERR_REC TO P_IPERR1.
ENDIF.
CLEAR WA_ERR_REC.
ENDLOOP.
CLOSE DATASET P_IPERR1.
ENDIF.
ENDIF.
ENDFORM. " DOWNLOAD_ERROR_FILE
*& Form BUILD_BDC_DATA
* Populates BDC for all the fields neccessary for Open Contract Creation
FORM BUILD_BDC_DATA.
DATA: L_MAT_INDEX TYPE I,
L_CON_INDEX TYPE I,
L_SCA_INDEX TYPE I.
CLEAR WA_BDCDATA.
REFRESH: I_BDCDATA,
I_MESSTAB.
* Processing the bdc
CLEAR: WA_RECORD,
WA_RECORDPREV,
VEN_FLAG,
MAT_FLAG.
LOOP AT I_RECORD INTO WA_RECORD.
* Checks for the del_flag of the record.
IF WA_RECORD-DEL_FLAG EQ C_TRUE
OR WA_RECORD-DEL_FLAG EQ C_STRUE.
CLEAR WA_RECORD.
CONTINUE.
ELSE.
IF WA_RECORDPREV-LIFNR NE WA_RECORD-LIFNR
OR WA_RECORDPREV-EVART NE WA_RECORD-EVART
OR WA_RECORDPREV-EKORG NE WA_RECORD-EKORG
OR WA_RECORDPREV-EKGRP NE WA_RECORD-EKGRP
OR WA_RECORDPREV-WERKS NE WA_RECORD-WERKS
OR WA_RECORDPREV-LGORT NE WA_RECORD-LGORT
OR WA_RECORDPREV-KDATB NE WA_RECORD-KDATB
OR WA_RECORDPREV-KDATE NE WA_RECORD-KDATE
OR WA_RECORDPREV-ZTERM NE WA_RECORD-ZTERM
OR WA_RECORDPREV-KTWRT NE WA_RECORD-KTWRT.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0200'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RM06E-LGORT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
* Cross-Reference check performed for the given Vendors
CLEAR WA_T024E.
READ TABLE I_T024E INTO WA_T024E
WITH KEY EKORG = WA_RECORD-EKORG
BINARY SEARCH.
IF SY-SUBRC EQ 0.
CLEAR WA_ZMVXREF.
READ TABLE I_ZMVXREF INTO WA_ZMVXREF
WITH KEY D_ALTKN = WA_RECORD-LIFNR
D_BUKRS = P_BUKRS
BINARY SEARCH.
IF SY-SUBRC EQ 0.
PERFORM BDC_FIELD USING 'EKKO-LIFNR'
WA_ZMVXREF-M_ALTKN.
ENDIF.
CLEAR WA_ZMVXREF.
ENDIF.
CLEAR WA_T024E.
PERFORM BDC_FIELD USING 'RM06E-EVART'
WA_RECORD-EVART.
PERFORM BDC_FIELD USING 'EKKO-EKORG'
WA_RECORD-EKORG.
PERFORM BDC_FIELD USING 'EKKO-EKGRP'
WA_RECORD-EKGRP.
PERFORM BDC_FIELD USING 'RM06E-WERKS'
WA_RECORD-WERKS.
PERFORM BDC_FIELD USING 'RM06E-LGORT'
WA_RECORD-LGORT.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0201'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'EKKO-KTWRT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=AB'.
PERFORM CONVERT_DATE USING WA_RECORD-KDATB V_CONV_DATE.
PERFORM BDC_FIELD USING 'EKKO-KDATB'
V_CONV_DATE.
PERFORM CONVERT_DATE USING WA_RECORD-KDATE V_CONV_DATE.
PERFORM BDC_FIELD USING 'EKKO-KDATE'
V_CONV_DATE.
PERFORM BDC_FIELD USING 'EKKO-ZTERM'
WA_RECORD-ZTERM.
PERFORM BDC_FIELD USING 'EKKO-KTWRT'
WA_RECORD-KTWRT.
VEN_FLAG = 1.
L_MAT_INDEX = 1. "index for table-control of material
ENDIF.
* "first check for itemline
IF WA_RECORDPREV-EPSTP NE WA_RECORD-EPSTP
OR WA_RECORDPREV-EMATN NE WA_RECORD-EMATN
OR WA_RECORDPREV-KTMNG NE WA_RECORD-KTMNG
OR WA_RECORDPREV-NETPR NE WA_RECORD-NETPR
OR WA_RECORDPREV-PEINH NE WA_RECORD-PEINH
OR WA_RECORDPREV-BPRME NE WA_RECORD-BPRME
OR WA_RECORDPREV-IDNLF NE WA_RECORD-IDNLF
OR WA_RECORDPREV-WEBRE NE WA_RECORD-WEBRE
OR WA_RECORDPREV-MEPRF NE WA_RECORD-MEPRF
OR WA_RECORDPREV-LTEX1 NE WA_RECORD-LTEX1
OR VEN_FLAG EQ 1.
V_IND = L_MAT_INDEX.
IF V_IND GT 1.
V_IND = 2.
ENDIF.
CONCATENATE 'RM06E-EVRTP(' V_IND ')' INTO V_EVRTP1.
CONCATENATE 'RM06E-EPSTP(' V_IND ')' INTO V_EPSTP1.
CONCATENATE 'EKPO-EMATN(' V_IND ')' INTO V_EMATN1.
CONCATENATE 'EKPO-KTMNG(' V_IND ')' INTO V_KTMNG1.
CONCATENATE 'EKPO-NETPR(' V_IND ')' INTO V_NETPR1.
CONCATENATE 'EKPO-PEINH(' V_IND ')' INTO V_PEINH1.
CONCATENATE 'EKPO-BPRME(' V_IND ')' INTO V_BPRME1.
CONCATENATE 'RM06E-TCSELFLAG(' V_IND ')' INTO V_TCSELFLAG1.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0220'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=NP'.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0220'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
V_EVRTP1.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=DETA'.
PERFORM BDC_FIELD USING V_EPSTP1
WA_RECORD-EPSTP.
PERFORM BDC_FIELD USING V_EMATN1
WA_RECORD-EMATN.
PERFORM BDC_FIELD USING V_KTMNG1
WA_RECORD-KTMNG.
PERFORM BDC_FIELD USING V_NETPR1
WA_RECORD-NETPR.
PERFORM BDC_FIELD USING V_PEINH1
WA_RECORD-PEINH.
PERFORM BDC_FIELD USING V_BPRME1
WA_RECORD-BPRME.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0211'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'EKPO-WEBRE'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=DETZ'.
PERFORM BDC_FIELD USING 'EKPO-IDNLF'
WA_RECORD-IDNLF.
TRANSLATE WA_RECORD-EVART TO UPPER CASE.
IF WA_RECORD-EVART EQ C_WK.
PERFORM BDC_FIELD USING 'EKPO-WEBRE' 'X'.
ENDIF.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0212'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'EKPO-MEPRF'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TXP'.
PERFORM BDC_FIELD USING 'EKPO-MEPRF'
WA_RECORD-MEPRF.
IF NOT WA_RECORD-LTEX1 IS INITIAL. "NE space.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0106'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RM06E-SELKZ(02)'.
PERFORM BDC_FIELD -
Break sap standard role into two sub roles
hi,
i have one SAP standard role. now i want to break this role into two sub roles. how shall do it.
please suggest me.
regards
ramesh
Edited by: Ramesh Sammiti on Jul 31, 2008 11:00 AMHi Ramesh,
When you say that you want to split the SAP Standard role into two roles:
1.Do you mean to say that you want to split the transactions and authorization data of the SAP Standard role into two separate Z* or Y* roles?
2.Do you want to copy the SAP Standard role into two different Z* or Y* roles and then modify the authorization data according to your company's requirements?
In the above two scenarios you must copy the SAP Standard role into Z* or Y* roles in PFCG transaction with the appropriate naming convention and make necessary changes in both the transaction data and the authorization data.
Please be clear which SAP Standard role you are willing to split into roles and i can provide more details.
Hope this helps.
Regards,
Kiran Kandepalli -
Import Hierarchies into Essbase Studio
Hi all,
I am running Essbase Studio 11.1.1.3.00.I have exported hierarchies into text files from an EAS database. I want to use the files to create the hierarchies in Studio. Is this possible and how can I do it?
Thanks in advance.Sorry I slightly misunderstood. If you are talking about an export, then it will not give you what you need. You would have to get the hierarchies from your Essbase model. Options for doing that would be
ODI,
the outline extractor available at appliedOlap.com (there is also one from Star Analytics that I don't remember the name of)
or from the API.
Each of the dimension extracts would have to be in a format acceptable to Studio like Parent child. You would have to include all the properties of each member to get it to build properly. Then you could load your data (either from within studio or with just a load rule. -
SSM 7.0 - Copy SAP BI data into PAS or Create Dim. Model viewing BI Data
I am using SSM 7.0 with SAP BI. Is there some best practice / direction / comments on making a decision between:
#1 - Duplicate SAP BI data into PAS Dimensional Model
- Create an InfoCube in SAP BI
- Create the model connection required by BI Connection
- Copy the required SAP BW/BI InfoCube information into a PAS Model using the BI Connector
- Create KPIs based on this model connection
or
#2 - Make SAP BI data visible in PAS Dimensional Model (no data stored in PAS)
- Create an InfoCube in SAP BI
- Create a Dimensional Model based on this InfoCube using a Link ID and the SCHEMA commands
- Create a model connection to make data in InfoCube available in SSM
- Create KPIs based on this model connection
My thinking is that if the volume of data is low then not actually having to go to the trouble of duplicating the data in SSM would work well - with the benefit that the information is updated as soon as the SAP BI InfoCube is updated.
(At the moment I have tried #2 but so far not failed to create an KPIs - I am wondering if the Key Figures in the InfoCube need to use a particular naming standard)Hi Mark,
See the link below for a Best practice document that is available here in SDN. Although you can use queries that already exist in BW, it is usually better to create new queries adjusted to the kind of information you want to provide in SM. There are a few rules you need to follow when creating such queries, but there is actually no naming convention for its Key-Figures.
[Best Practiceu2026 The BI Connector in SSM 7.0|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/701b8da0-3135-2b10-929d-936e43164b06]
Hope this helps!
Ricardo -
Can any body tell me how to pull SAP-CRM data into BW
Hi BW guru`s,
Does anybody tell me how to pull SAP-CRM data into BW.
Is there any configuaration setings takes place in CRM system or BW system?
Provide few of CRM datasources names (Transaction data Datasources)
Please explain indetail and give some examples.
Thanks in advance,
venkatHi.......
SAP CRM uses BW Adapter to extract data from SAP CRM and send it to SAP Business Information Warehouse and SAP NetWeaver Business Intelligence. For mBDocs, BW Adapter extracts objects for CRM business transactions and CRM billing use the BAdI CRM_BWA_MFLOW. However, in releases prior to SAP CRM 2005, after using transaction code RSA5 to activate business content in SAP CRM, you must use transaction code BWA5 to activate the business content for the BW Adapter.
Check this link :
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f2910623-0c01-0010-de8f-d1926988a986
Hope this helps you.........
Regards,
Debjani........ -
Guideline Performance Initial Download from SAP for Utility into SAP CRM
Hello,
Please find below a link (valid for 10 weeks) to the document Guideline Performance Initial Download from SAP for Utilities into SAP CRM. The document is also published in the SAP Service Market Place at http://service.sap.com/utilities. Then choose Technical Information Center - Migration.
The purpose of the document is to give guidelines as well as to share experience for an efficient and high performance execution of an initial download from an SAP for Utilities system to an SAP CRM system, such as:
- Configuration of the initial download
- Ensure optimum performance for the initial download of the relevant business objects
- Avoid unnecessary business data being downloaded
- Monitoring of the initial download and taking corrective actions in case of problems
- Handle errors occurring during the initial download of business objects
- Minimize performance bottlenecks
The document explains the setup and configuration of the SAP for Utilities and SAP CRM systems only if necessary for the understanding of the solution of a described performance problem. This document does not cover the performance optimization of the delta down- and upload and the synchronization download.
The document has the following structure:
Chapter 1 describes the basics of an initial download
Chapter 2 describes how to plan and execute tests to achieve an acceptable performance
Chapter 3 describes the most important technical activities to prepare the involved systems
Chapter 4 describes the most important functional activities to prepare the involved system
Chapter 5 describes how to perform an initial download
Chapter 6 describes measures to improve the performance of an initial download
Chapter 7 provides a list of important repository tables
Chapter 8 contains a list of important SAP Notes related to initial download
I'd highly appreciate your valuable feedback on this document.
Kind regards,
Fritz
Edited by: William Eastman on Feb 17, 2011 2:34 PMHi Fritz,
sorry for the late late reply but I didn't notice your answer.
Here are my answers:
(1) I monitored the behaviour on the CRM system, CRM 7.0, SP5
(2) The change should be implemented in the CRM system
(3) Deactivate buffering for scenarios marketing, sale and service via SM30 and table T770MATTR.
By doing this the initial load of 3.2 million business agreements took around 2 hours, with activated scenario buffering I was at least ten times slower.
After the initial load you have to activate the buffering again.
Interesting to know would be why the scenario buffering only affects the initial load of business agreements and no other object. As far as I know the scenario buffering is relevant for the organizational management.
Regards
Alexander -
Hello guys,
I am trying to create a SAP Query from a join of 2 tables. One of them contains some document header, the other one, for that header several rows.
I would like to display the Query for that join, with alv grid or a abap list, or something... but hierarchically. First the info from the header, then (maybe indented) the multiple rows regarding that header.
Is there any way i cand do that?
Thanks,
Andrewtry this:
REPORT ytest .
TYPE-POOLS: SLIS.
TYPES: BEGIN OF TY_VBAK,
VBELN TYPE VBELN,
ERDAT TYPE ERDAT,
NETWR TYPE NETWR,
WAERK TYPE WAERK,
END OF TY_VBAK.
TYPES: BEGIN OF TY_VBAP,
VBELN TYPE VBELN,
POSNR TYPE POSNR,
ARKTX TYPE ARKTX,
NETWR TYPE NETWR,
END OF TY_VBAP.
DATA: W_VBAK TYPE TY_VBAK.
DATA: T_VBAK TYPE STANDARD TABLE OF TY_VBAK INITIAL SIZE 1.
DATA: W_VBAP TYPE TY_VBAP.
DATA: T_VBAP TYPE STANDARD TABLE OF TY_VBAP INITIAL SIZE 1.
DATA: W_FCAT TYPE SLIS_FIELDCAT_ALV.
DATA: T_FCAT TYPE SLIS_T_FIELDCAT_ALV.
CONSTANTS: C_VBAK TYPE SLIS_TABNAME VALUE W_VBAK.
CONSTANTS: C_VBAP TYPE SLIS_TABNAME VALUE W_VBAP.
DATA: W_KEYINFO TYPE SLIS_KEYINFO_ALV.
W_KEYINFO-HEADER01 = VBELN.
W_KEYINFO-ITEM01 = VBELN.
W_FCAT-COL_POS = 1.
W_FCAT-FIELDNAME = VBELN.
W_FCAT-SELTEXT_M = ORDER NO.
W_FCAT-TABNAME = W_VBAK.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 2.
W_FCAT-FIELDNAME = ERDAT.
W_FCAT-SELTEXT_M = DATE.
W_FCAT-TABNAME = W_VBAK.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 3.
W_FCAT-FIELDNAME = NETWR.
W_FCAT-SELTEXT_M = ORDER VALUE.
W_FCAT-TABNAME = W_VBAK.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 4.
W_FCAT-FIELDNAME = POSNR.
W_FCAT-SELTEXT_M = ITEM NO.
W_FCAT-TABNAME = W_VBAP.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 5.
W_FCAT-FIELDNAME = ARKTX.
W_FCAT-SELTEXT_L = DESCRIPTION.
W_FCAT-TABNAME = W_VBAP.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 6.
W_FCAT-FIELDNAME = NETWR.
W_FCAT-SELTEXT_M = ITEM VALUE.
W_FCAT-TABNAME = W_VBAP.
APPEND W_FCAT TO T_FCAT.
SELECT-OPTIONS: ORDNO FOR W_VBAP-VBELN.
&SELEC HEADER DATA AND SORT-
SELECT VBELN ERDAT NETWR FROM VBAK
INTO CORRESPONDING FIELDS OF TABLE T_VBAK
WHERE VBELN IN ORDNO.
SORT T_VBAK BY VBELN.
&SELEC ITEM DATA AND SORT-
SELECT VBELN POSNR ARKTX NETWR FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE T_VBAP.
SORT T_VBAP BY POSNR.
&REUSE_ALV_HIERSEQ_LIST_DISPLAY-
CALL FUNCTION REUSE_ALV_HIERSEQ_LIST_DISPLAY
EXPORTING
IT_FIELDCAT = T_FCAT
I_TABNAME_HEADER = C_VBAK
I_TABNAME_ITEM = C_VBAP
IS_KEYINFO = W_KEYINFO
TABLES
T_OUTTAB_HEADER = T_VBAK
T_OUTTAB_ITEM = T_VBAP.
reward if useful -
Hi all,
We are experiencing an issue which happens at random whenever a user tries to export data from SAP into Excel or Word. Excel or Word is started but remain empty. We then see the below errors in the event log. And the problem is very random
as sometimes all they have to do is wait 10 minutes and the next try will be successful. Not even log off/on. Could someone tell me what the error "1260" is saying? thanks for your help.
Pete
Log Name: System
Source: Microsoft-Windows-DistributedCOM
Date: 7/23/2013 4:07:36 PM
Event ID: 10000
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: Servername.domain.com
Description:
Unable to start a DCOM Server: {00020906-0000-0000-C000-000000000046}. The error:
"1260"
Happened while starting this command:
"C:\Program Files (x86)\Microsoft Office\Office12\WINWORD.EXE" -Embedding
Log Name: System
Source: Microsoft-Windows-DistributedCOM
Date: 7/23/2013 3:54:34 PM
Event ID: 10000
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: Servername.domain.com
Description:
Unable to start a DCOM Server: {00024500-0000-0000-C000-000000000046}. The error:
"1260"
Happened while starting this command:
"C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE" /automation -EmbeddingHi,
Based on my research, please try the following:
Click Start, click Run, type regedit in the Open box, and then click OK.
Locate the following registry subkey:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\termsrv
Under this subkey, add the following registry entries:
Name
Type
Value data
Logoff
REG_SZ
TSEventLogoff
Logon
REG_SZ
TSEventLogon
Restart the Terminal Server computer.
Note: Serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry
before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, please refer to
How to back up and restore the registry in Windows.
Hope this helps.
Best Regards
Jeremy Wu -
Hi, I need your help on consolidating two different SCCM 2007 infrastructures into a single SCCM 2012.
We have two different SCCM 2007 Hierarchies, Lets say 123 and ABC
About 123 SCCM 2007 -- On 123 Hierarchy, we have already started migrating clients from SCCM 2007 to SCCM 2012.
About ABC SCCM 2007 -- On ABC Hierarchy, This is still running on SCCM 2007 (This hierarchy only be started migrating once we
are completed migration on 123)
Out of which, we have few co located offices across the globe for both 123 and ABC. Now we are decided to replace the hardware on all these locations by removing the existing two servers (one for 123 and other for ABC,with two different Forest and domains),
and consolidate them into a single server.how can we plan/design to ensure that we covering both hierarchies SCCM clients for the operations.
===================Below are some possibilities we are discussing on================================
1.Is there any way on "System management" in AD to enable access either in 123's domain or ABC's domain.
2.Since we are planning to replace the hardware with Server 2012 R2 with Hyper-V, Create two instances and migrate 123 hierarchy to SCCM 2012 and other instance will serve ABC until we start the migration on this.
========================================================================================
correct me, If i am in wrong direction. Please suggest me the best of doing it. Thanks in advance.
srkr1) In CM 2012 you can publish data to System Management in other forest but you have to configure the permissions manually and create the forest object in the ConfigMgr console.
2) CM07 and CM2012 instances can co-exist as long as you don't create boundary groups in CM12 for site assignment (that will cause overlapping boundaries if you still have boundaries in Cm07)
Kent Agerlund | My blogs: blog.coretech.dk and
SCUG.DK | Twitter: @Agerlund | Linkedin:
Kent Agerlund -
Moving OTC processes from SAP R/3 into SAP CRM 5.0
Hi all,
A SAP CRM client that I am currently working on have decided to extend the project scope and now want to move all their existing OTC processes from R/3 to CRM 5.0. Their system is heavily bespoked with a high level of user exits, as during the initial implementation they preferred to use more ABAP than config although some of the functionality was available as standard. If they havent figured it out yet, Im sure theyll be asking themselves soon whose clever idea that was. They have over 1m customer records with a low transaction volume per customer per year, configurable products, complex pricing and use Biller Direct, just to mention a few.
Has anyone got any experience in doing this previously? Any issues, challenges or lessions learnt apart from the obvious ones?
Thanks!
JSeshu Mannepalli wrote:
> As part of the upgrade we are going to do initial upgrade in the mock server and vendor is going to provide mock server with AIX 7.1 O/S. Current database size is 100GB, hence we are going to copy the production server data into the mock server using export and import method,
>
> Here my doubt is can i install db9.7 directly and do the import (using compitable kernel)?, insteady of installing source database version 8.1 and later upgrading to db2 9.7 . Please clarify me whether can i go head and install the db2 9.7 and do the system copy using R3load.
Hello,
You can go ahead for IMPORT with DB 9.7.
We completed an OS/DB Migration Project (which involves system copy using EXPORT/IMPORT) and we utilized direct newer version of DB2 on the target during IMPORT.
But please confirm whether the kernel of your release would work fine with DB 9.7 or not. Otherwise, there is no problem in going for higher version of DB2 here.
Small question - Why you want to test the Mock Upgrade on DB2 version which is different than the current version on production server ? Or are you planning to upgrade your current DB2 8 to DB2 9.7 BEFORE the SAP Upgrade on all the servers - then the testing is OK I think (however OS is still the different - Or may be you will go for system copies for this too !)
Thanks -
How to Load Planning Adapter for SAP R/3 into DIM
I'm sucessfully instaled Oracle-Hyperion Data Integration Managenet v.11.1.1.1, now i need to extract data from SAP R/3 and load it into a Planning application. I understand that i must use an adaptaer for Planning, i already have HyperionPlanning.reg file and other .reg and .jar files. At this point I don't know what i must do with this files and how can load planning adapters into Data Integration Management.
I appreciate any information, there is not a lot information abour DIM in the web, even in the Oracle EPM Documentation site.
My best regards,
Melvin.hi,
not very nice but and not really satisfying:
if the users of the remote-users for the logon from the BWs onto the one R/3 differ you could use sy-uname to check what bw is extracting ...
everything else is a bit more complex
hth
cheers
sven -
Want to convert Sap standard report into alvgrid
HI PLEASE HELP THIS IS CODE BELOW OF SAP STANDARD REPORT CODE WANT TO CONVERT INTO ALVGRID
LEAS HELP
REPORT RFKOPR00
MESSAGE-ID FR
LINE-SIZE 132
NO STANDARD PAGE HEADING.
TABLES: B0SG,
LFA1, "Daten auf Mandantenebene
LFB1, "Daten auf Buchungskreisebene
LFB5, "Mahndaten
LFC1, "Verkehrszahlen
LFC3, "Sonderumsätze
BSIK, "Offend Posten
BKPF,
BSEG,
BSEGA.
TABLES:
BHDGD,
T001,
T001S,
*T001S,
T074T,
T074U,
TBSL,
TBSLT,
TCURX,
ADRS,
RFPDO,
RFPDO1,
RFSDO,
FAEDE.
FIELD-SYMBOLS: .
*Hilfsfelder
*---Prüfung ob mehrere Hauswährungen verarbeitet werden.
DATA: CFAKT(3) TYPE P,
CHECKSALDO(8) TYPE P,
CHECKAGOBL(8) TYPE P,
WAERS LIKE T001-WAERS,
WFLAG(1) TYPE P VALUE '0',
WAERS2 LIKE T001-WAERS,
WFLAG2(1) TYPE P VALUE '0',
PH-LINE(132) TYPE C.
*---Ermittlung aktuelles Geschäftsjahr über Funktionsbaustein.
DATA: CURRY LIKE BSIK-GJAHR.
*-Ermittlung Zahlungseingang bei Zahlungen mit Skontoabzug--
*ATA: ZVTAGE LIKE KNB4-VZS01, "Verzugstage
ZVSKONTO(8) TYPE P, "Zahlungsvolumen bei Zahlung mit Skonto
ZVNETTO(8) TYPE P, "Zahlungsvolumen bei Nettozahlung
ZVVERZUG(8) TYPE P, "Verzugstage
ZVMALVZ(8) TYPE P, "Zahlungvolumen * Verzugstage
"KNB4-VZSxx)
ZVTYP(1) TYPE C, "Skonto oder Nettozahler
ZVPER(4) TYPE C. "Periode letze Zahlung
*---Zeilenanzahl fü Adressausgabe -
DATA: ZEILENANZAHL LIKE ADRS-ANZZL VALUE 7.
DATA: KSALDO(6) TYPE P. "Saldovortrag
BEABZUG(6) TYPE P, "Berechtigte Abzüge
UBABZUG(6) TYPE P, "Unberechtigte Abzüge
JAHRAUG(6) TYPE P, "Kumulierter Jahresausgleich
KUMZINS(6) TYPE P. "Kumulierter Zins
Ausgabe der Mahndaten pro Buchungskreis.
DATA: INDEX(2) TYPE P VALUE 0.
Hilfsfelder
DATA: HF(1) TYPE C.
DATA: TXT_1(78) TYPE C, "Mahnbereich
TXT_2(78) TYPE C, "Mahnart
TXT_3(78) TYPE C, "Mahnempfänger
TXT_4(78) TYPE C, "Mahndatum
TXT_5(78) TYPE C, "Mahnstufe
TXT_6(78) TYPE C, "Mahnsperre
TXT_7(78) TYPE C, "Mahnverfahren
TXT_8(78) TYPE C. "Sachbearbeiter
DATA: BEGIN OF XMAHN OCCURS 10.
INCLUDE STRUCTURE LFB5.
DATA: END OF XMAHN.
Hilfsfelder
DATA: CHAR1(1) TYPE C.
DATA: FLAG1(1) TYPE C.
DATA: INTENS(1) TYPE C.
DATA: FLAG2(1) TYPE C.
*---- K o n s t a n t e n -
*---- DNULL zum Vergleich mit Datumsfeldern -
DATA: DNULL(8) TYPE C VALUE '00000000'.
*---- DECKBLATT = 'N' ==> Kein Deckblatt bei NEW-SECTION -
DATA: DECKBLATT TYPE C VALUE 'N'.
*---- 'H' = Hilfsfelder, die jederzeit fuer Berechnungen ver- -
*---- wendet werden koennen. -
DATA: BEGIN OF H,
STICHTAG(8),
OFFSET(2) TYPE P,
OFFSE1(2) TYPE P,
SOLL LIKE LFC1-UM01S,
HABEN LIKE LFC1-UM01H,
SALDO LIKE LFC1-UMSAV,
SHBKZ LIKE LFC3-SHBKZ, "Sonderhauptbuchkennzeichen
SALDV LIKE LFC3-SALDV, "Sonderhauptbuch-Saldovortrag
SHBLS LIKE LFC3-SOLLL, "Sonderhauptbuch-Lfd.-Saldo
SHBSL LIKE LFC3-SOLLL, "Sonderhauptbuch-Lfd.-SOLL
SHBHB LIKE LFC3-HABNL, "Sonderhauptbuch-Lfd.-HABEN
GBNUM LIKE lfC1-GBN01, "Geschaeftsber. Nummer ECKERT
GBUMS LIKE lfC1-GBU01, "Geschaeftsber. Umsatz
TEXT(15),
UMLOW LIKE BSIK-UMSKZ, "Umsatzkennzeichen
UMHIG LIKE BSIK-UMSKZ, "Umsatzkennzeichen
END OF H.
---- 'C' = Zwischenergebnisse, die aus Feldern des C-Segmentes ---
*---- berechnet werden. -
DATA: BEGIN OF C,
SALDO TYPE P, "Saldo
UMKZ1 LIKE LFC3-SHBKZ, "SHBKZ 1
SUMS1 TYPE P, "Sonderumsatz 1
UMKZ2 LIKE LFC3-SHBKZ, "SHBKZ 2
SUMS2 TYPE P, "Sonderumsatz 2
UMKZ3 LIKE LFC3-SHBKZ, "SHBKZ 3
SUMS3 TYPE P, "Sonderumsatz 3
UMKZ4 LIKE LFC3-SHBKZ, "SHBKZ 4
SUMS4 TYPE P, "Sonderumsatz 4
UMKZ5 LIKE LFC3-SHBKZ, "SHBKZ 5
SUMS5 TYPE P, "Sonderumsatz 5
UMKZ6 LIKE LFC3-SHBKZ, "SHBKZ 6
SUMS6 TYPE P, "Sonderumsatz 6
UMKZ7 LIKE LFC3-SHBKZ, "SHBKZ 7
SUMS7 TYPE P, "Sonderumsatz 7
UMKZ8 LIKE LFC3-SHBKZ, "SHBKZ 8
SUMS8 TYPE P, "Sonderumsatz 8
UMKZ9 LIKE LFC3-SHBKZ, "SHBKZ 9
SUMS9 TYPE P, "Sonderumsatz 9
UMKZ10 LIKE LFC3-SHBKZ, "SHBKZ 10
SUMS10 TYPE P, "Sonderumsatz 10
SONOB TYPE P, "Sonstige Umsatz-Kz
BABZG TYPE P, "Berechtigte Abzuege
UABZG TYPE P, "Unberechtigte Abzuege
KZINS TYPE P, "Zinszahlungen
KUMUM TYPE P, "Umsatz
KUMAG TYPE P, "Kum. Jahresausgleich
KREUEB TYPE P, "Kreditueberschreitung
AGOBLI TYPE P, "Gesamt-Obligo (absolut)
AGOBLI LIKE LFC1-UMSAV, "Gesamt-Obligo (absolut)
RGOBLI TYPE P, "Gesamt-Obligo (relativ)
LFTAGE(3) TYPE P, "Langfristige Überzugstage
MFTAGE(3) TYPE P, "Mittelfristige Überzugstage
KFTAGE(3) TYPE P, "Kurzfristige Überzugstage
END OF C.
---- 'C2'= Zwischenergebnisse, die aus Feldern des C-Segmentes ---
*---- berechnet werden. -
DATA: BEGIN OF C2 OCCURS 0,
BUKRS LIKE LFC1-BUKRS,
SALDO TYPE P, "Saldo
WEXOB TYPE P, "Wechsel-Obligo W,S,B
ANZOB TYPE P, "Anzahlungs-Obligo A
ZANFB TYPE P, "Zahlungs-Anforderung F
UMKZ1 LIKE LFC3-SHBKZ, "SHBKZ 1
SUMS1 TYPE P, "Sonderumsatz 1
UMKZ2 LIKE LFC3-SHBKZ, "SHBKZ 2
SUMS2 TYPE P, "Sonderumsatz 2
UMKZ3 LIKE LFC3-SHBKZ, "SHBKZ 3
SUMS3 TYPE P, "Sonderumsatz 3
UMKZ4 LIKE LFC3-SHBKZ, "SHBKZ 4
SUMS4 TYPE P, "Sonderumsatz 4
UMKZ5 LIKE LFC3-SHBKZ, "SHBKZ 5
SUMS5 TYPE P, "Sonderumsatz 5
UMKZ6 LIKE LFC3-SHBKZ, "SHBKZ 6
SUMS6 TYPE P, "Sonderumsatz 6
UMKZ7 LIKE LFC3-SHBKZ, "SHBKZ 7
SUMS7 TYPE P, "Sonderumsatz 7
UMKZ8 LIKE LFC3-SHBKZ, "SHBKZ 8
SUMS8 TYPE P, "Sonderumsatz 8
UMKZ9 LIKE LFC3-SHBKZ, "SHBKZ 9
SUMS9 TYPE P, "Sonderumsatz 9
UMKZ10 LIKE LFC3-SHBKZ, "SHBKZ 10
SUMS10 TYPE P, "Sonderumsatz 10
SONOB TYPE P, "Sonstige Umsatz-Kz
BABZG TYPE P, "Berechtigte Abzuege
UABZG TYPE P, "Unberechtigte Abzuege
KZINS TYPE P, "Zinszahlungen
KUMUM TYPE P, "Umsatz
KUMAG TYPE P, "Kum. Jahresausgleich
KREUEB TYPE P, "Kreditueberschreitung
AGOBLI TYPE P, "Gesamt-Obligo (absolut)
AGOBLI LIKE LFC1-UMSAV, "Gesamt-Obligo (absolut)
RGOBLI TYPE P, "Gesamt-Obligo (relativ)
LFTAGE(3) TYPE P, "Langfristige Überzugstage
MFTAGE(3) TYPE P, "Mittelfristige Überzugstage
KFTAGE(3) TYPE P, "Kurzfristige Überzugstage
ZVTYP(1) TYPE C, "Flag Skonto oder Nettozahler
ZVPER(6) TYPE C, "letze Zahlungsperiode
ZVVERZUG(8) TYPE P, "Durchschittliche Verzugst
END OF C2.
---- 'C3'= Zwischenergebnisse, die aus Feldern des C-Segmentes ---
*---- berechnet werden. -
DATA: BEGIN OF C3,
SALDO TYPE P, "Saldo
WEXOB TYPE P, "Wechsel-Obligo W,S,B
ANZOB TYPE P, "Anzahlungs-Obligo A
ZANFB TYPE P, "Zahlungs-Anforderung F
UMKZ1 LIKE LFC3-SHBKZ, "SHBKZ 1
SUMS1 TYPE P, "Sonderumsatz 1
UMKZ2 LIKE LFC3-SHBKZ, "SHBKZ 2
SUMS2 TYPE P, "Sonderumsatz 2
UMKZ3 LIKE LFC3-SHBKZ, "SHBKZ 3
SUMS3 TYPE P, "Sonderumsatz 3
UMKZ4 LIKE LFC3-SHBKZ, "SHBKZ 4
SUMS4 TYPE P, "Sonderumsatz 4
UMKZ5 LIKE LFC3-SHBKZ, "SHBKZ 5
SUMS5 TYPE P, "Sonderumsatz 5
UMKZ6 LIKE LFC3-SHBKZ, "SHBKZ 6
SUMS6 TYPE P, "Sonderumsatz 6
UMKZ7 LIKE LFC3-SHBKZ, "SHBKZ 7
SUMS7 TYPE P, "Sonderumsatz 7
UMKZ8 LIKE LFC3-SHBKZ, "SHBKZ 8
SUMS8 TYPE P, "Sonderumsatz 8
UMKZ9 LIKE LFC3-SHBKZ, "SHBKZ 9
SUMS9 TYPE P, "Sonderumsatz 9
UMKZ10 LIKE LFC3-SHBKZ, "SHBKZ 10
SUMS10 TYPE P, "Sonderumsatz 10
SONOB TYPE P, "Sonstige Umsatz-Kz
BABZG TYPE P, "Berechtigte Abzuege
UABZG TYPE P, "Unberechtigte Abzuege
KZINS TYPE P, "Zinszahlungen
KUMUM TYPE P, "Umsatz
KUMAG TYPE P, "Kum. Jahresausgleich
KREUEB TYPE P, "Kreditueberschreitung
AGOBLI TYPE P, "Gesamt-Obligo (absolut)
AGOBLI LIKE LFC1-UMSAV, "Gesamt-Obligo (absolut)
RGOBLI TYPE P, "Gesamt-Obligo (relativ)
LFTAGE(3) TYPE P, "Langfristige Überzugstage
MFTAGE(3) TYPE P, "Mittelfristige Überzugstage
KFTAGE(3) TYPE P, "Kurzfristige Überzugstage
ZVTYP(1) TYPE C, "Flag Skonto oder Nettozahler
ZVPER(6) TYPE C, "letze Zahlungsperiode
ZVVERZUG(8) TYPE P, "Durchschittliche Verzugst
END OF C3.
DATA: SHBETRAG LIKE BSEGA-DMSHB. "TYPE P.
*---- 'RTAB' = Rastertabelle fuer offene Posten -
DATA: BEGIN OF RTAB OCCURS 30,
SORTK(1) TYPE C, "0 = Summe Gesber
"1 = Summe aller Gesber
"2 = Umsatzdaten
BUKRS LIKE BSIK-BUKRS,
GSBER LIKE BSIK-GSBER,
WAERS LIKE BSIK-WAERS,
RAART TYPE C, "Rasterart
"1 = Netto-Faelligkeit
"2 = Skonto1-Faelligkeit
"3 = Zahlungseingang
"4 = Ueber-Faelligkeit
SPERR TYPE P, "gesprrte Posten
KUMUM TYPE P, "Umsatz
ANZAH TYPE P, "Anzahlungen
OPSUM TYPE P, "Offene Posten Summe
RAST1 TYPE P, "Rasterfeld 1
RAST2 TYPE P, "Rasterfeld 2
RAST3 TYPE P, "Rasterfeld 3
RAST4 TYPE P, "Rasterfeld 4
RAST5 TYPE P, "Rasterfeld 5
RAST6 TYPE P, "Rasterfeld 6
END OF RTAB.
*---- 'RBUS' = Rastertabelle fuer Summen pro Sachbearbeiter -
*ATA: BEGIN OF RBUS OCCURS 30,
SORTK(1) TYPE C, "0 = Summe Gesber
"1 = Summe aller Gesber
BUKRS LIKE BSIk-BUKRS,
GSBER LIKE BSIk-GSBER,
WAERS LIKE BSIk-WAERS,
RAART TYPE C, "Rasterart
"1 = Netto-Faelligkeit
"2 = Skonto1-Faelligkeit
"3 = Zahlungseingang
"4 = Ueber-Faelligkeit
KUMUM TYPE P, "Umsatz
ANZAH TYPE P, "Anzahlungen
OPSUM TYPE P, "Offene Posten Summe
RAST1 TYPE P, "Rasterfeld 1
RAST2 TYPE P, "Rasterfeld 2
RAST3 TYPE P, "Rasterfeld 3
RAST4 TYPE P, "Rasterfeld 4
RAST5 TYPE P, "Rasterfeld 5
RAST6 TYPE P, "Rasterfeld 6
END OF RBUS.
*---- 'RBUK' = Rastertabelle fuer Summen pro Buchungskreis -
DATA: BEGIN OF RBUK OCCURS 30,
SORTK(1) TYPE C, "0 = Summe Gesber
"1 = Summe aller Gesber
"2 = Umsatzdaten
BUKRS LIKE BSIK-BUKRS,
GSBER LIKE BSIK-GSBER,
WAERS LIKE BSIK-WAERS,
RAART TYPE C, "Rasterart
"1 = Netto-Faelligkeit
"2 = Skonto1-Faelligkeit
"3 = Zahlungseingang
"4 = Ueber-Faelligkeit
SPERR TYPE P, "gesprrte Posten
KUMUM TYPE P, "Umsatz
ANZAH TYPE P, "Anzahlungen
OPSUM TYPE P, "Offene Posten Summe
RAST1 TYPE P, "Rasterfeld 1
RAST2 TYPE P, "Rasterfeld 2
RAST3 TYPE P, "Rasterfeld 3
RAST4 TYPE P, "Rasterfeld 4
RAST5 TYPE P, "Rasterfeld 5
RAST6 TYPE P, "Rasterfeld 6
END OF RBUK.
---- 'RSUM' = Rastertabelle pro Währung über alle Buchungskreise ---
DATA: BEGIN OF RSUM OCCURS 30,
SORTK(1) TYPE C, "0 = Summe Gesber
"1 = Summe aller Gesber
BUKRS LIKE BSIk-BUKRS,
GSBER LIKE BSIk-GSBER,
WAERS LIKE BSIK-WAERS,
RAART TYPE C, "Rasterart
"1 = Netto-Faelligkeit
"2 = Skonto1-Faelligkeit
"3 = Zahlungseingang
"4 = Ueber-Faelligkeit
SPERR TYPE P, "gesperrte Posten
KUMUM TYPE P, "Umsatz
ANZAH TYPE P, "Anzahlungen
OPSUM TYPE P, "Offene Posten Summe
RAST1 TYPE P, "Rasterfeld 1
RAST2 TYPE P, "Rasterfeld 2
RAST3 TYPE P, "Rasterfeld 3
RAST4 TYPE P, "Rasterfeld 4
RAST5 TYPE P, "Rasterfeld 5
RAST6 TYPE P, "Rasterfeld 6
END OF RSUM.
*---- interne Tabelle für Periodenabgrenzung----
RANGES: BMONAT FOR RFPDO-DOPRBMON.
---- In die Felder RP01 bis RP05 werden dynamisch die von aussen ---
*---- eingegebenen Rasterpunkte uebertragen -
DATA: RP01(2) TYPE P, " 0
RP02(2) TYPE P, " 20
RP03(2) TYPE P, " 40
RP04(2) TYPE P, " 80
RP05(2) TYPE P, " 100
RP06(3) TYPE P, " 1
RP07(3) TYPE P, " 21
RP08(3) TYPE P, " 41
RP09(3) TYPE P, " 81
RP10(3) TYPE P. " 101
*---- In die Felder RC01 bis RC10 werden die Rasterpunkte in -
---- charakterform abgestellt. (fuer REPLACE-Funktion in Variabler -
*---- Ueberschrift) -
DATA: RC01(4) TYPE C, " 0
RC02(4) TYPE C, " 20
RC03(4) TYPE C, " 40
RC04(4) TYPE C, " 80
RC05(4) TYPE C, " 100
RC06(4) TYPE C, " 1
RC07(4) TYPE C, " 21
RC08(4) TYPE C, " 41
RC09(4) TYPE C, " 81
RC10(4) TYPE C. " 101
*---- Felder für Umsatzkennzeichen -
*---- für Ausweis der Sonderumsätze----
DATA: HUMKZ1 LIKE LFC3-SHBKZ,
HUMKZ2 LIKE LFC3-SHBKZ,
HUMKZ3 LIKE LFC3-SHBKZ,
HUMKZ4 LIKE LFC3-SHBKZ,
HUMKZ5 LIKE LFC3-SHBKZ,
HUMKZ6 LIKE LFC3-SHBKZ,
HUMKZ7 LIKE LFC3-SHBKZ,
HUMKZ8 LIKE LFC3-SHBKZ,
HUMKZ9 LIKE LFC3-SHBKZ,
HUMKZ10 LIKE LFC3-SHBKZ.
*---- GBZAEHL - In diesem Feld wird vermerkt, fuer wieviele Ge- -
*---- schaeftsbereiche ein OP-Raster ausgegeben wird. -
---- Wird das Raster nur fuer einen Geschaeftsbereich ge- -
*---- druckt, so entfaellt das Summen-Raster. -
DATA: GBZAEHL(3) TYPE P.
---- TOP-FLAG '1' = bei TOP-OF-PAGE Einzelpostenueberschrift ausg. --
*---- '2' = bei TOP-OF-PAGE Ueberschrift fuer Raster ausgeb. *
*---- '3' = bei TOP-OF-PAGE ULINE ausgeben. -
---- '4' = bei TOP-OF-PAGE Stammsatzueberschrift ausgeben --
DATA: TOP-FLAG(1) TYPE C.
*---- SEL-STAMM 'J' = Stammsatz wird ausgewertet *
*---- 'N' = Stammsatz wird nicht ausgewertet *
*---- SEL-POSTN 'J' = Stammsatz hat Posten gerastert *
*---- 'N' = Stammsatz hat keine Posten gerastert *
DATA: BEGIN OF SEL,
STAMM(1) TYPE C,
POSTN(1) TYPE C,
POST2(1) TYPE C,
END OF SEL.
*---- SATZART '1' = Stammdaten -
*---- '2' = Faelligkeitsraster -
*---- '3' = Einzelposten -
DATA: SATZART(1) TYPE C.
*---- RART = Erste ausgewaehlte Rasterart -
DATA: RART(1) TYPE C.
*---- TAGE = Tage nach denen die Posten sortiert sind -
DATA: TAGE(4) TYPE P,
*---- NTAGE = Tage fuer Netto-Faelligkeit -
NTAGE(4) TYPE P,
*---- STAGE = Tage fuer Skonto1-Faelligkeit -
STAGE(4) TYPE P,
*---- ATAGE = Alter der Belege -
ATAGE(4) TYPE P,
*---- UTAGE = Tage fuer Ueber-Faelligkeit -
UTAGE(4) TYPE P.
*---- RASTERUU dient zur Sortierung der Einzelposten. Die Posten -
*---- gemaess ihrer Rasterung die Werte '1' bis '6' -
DATA: RASTERUU(1) TYPE C.
*---- RAART Rasterart -
---- Die einzelnen Felder der Feldleiste werden bei SART-OF-SELECTION
*---- mit 1 oder 0 bestueckt. -
*ATA: BEGIN OF RAART,
NET(1) TYPE C, "X = ausgewaehlt, ' ' = nicht ausgewaehlt
SKT(1) TYPE C, "X = ausgewaehlt, ' ' = nicht ausgewaehlt
UEB(1) TYPE C, "X = ausgewaehlt, ' ' = nicht ausgewaehlt
END OF RAART.
DATA: BEGIN OF GB,
GSBER LIKE BSIK-GSBER,
WAERS LIKE BSIK-WAERS,
END OF GB.
*---- Variable Ueberschriften -
DATA: BEGIN OF VARUEB1,
FELD1(45) TYPE C,
FELD2(14) TYPE C,
FELD3(14) TYPE C,
FELD4(14) TYPE C,
FELD5(14) TYPE C,
FELD6(14) TYPE C,
FELD7(14) TYPE C,
END OF VARUEB1.
DATA: BEGIN OF VARUEB2,
FELD1(45) TYPE C,
FELD2(14) TYPE C,
FELD3(14) TYPE C,
FELD4(14) TYPE C,
FELD5(14) TYPE C,
FELD6(14) TYPE C,
FELD7(14) TYPE C,
END OF VARUEB2.
DATA: VARUEB3(132),
VARUEB4(132),
VARTXT1(40),
VARTXT(40) TYPE C.
*---- Variable für Ausgabe der Sonderumsätze----
DATA: SHBBEZ LIKE T074T-LTEXT.
DATA: ASUMS TYPE P. "
*---- Interne Tabelle für Bezeichnungen der SHBKZ----
DATA: BEGIN OF BEZSHB OCCURS 10,
SHBKZ LIKE T074T-SHBKZ,
LTEXT LIKE T074T-LTEXT,
END OF BEZSHB.
*---- Interne Tabelle für Zwischenspeicherung -
DATA: BEGIN OF BLKEY,
BUKRS LIKE BSIK-BUKRS,
BELNR LIKE BSIK-BELNR,
GJAHR LIKE BSIK-GJAHR,
BUZEI LIKE BSIK-BUZEI,
END OF BLKEY.
DATA: BEGIN OF RTAGE,
NTAGE LIKE NTAGE,
STAGE LIKE STAGE,
ATAGE LIKE ATAGE,
UTAGE LIKE UTAGE,
END OF RTAGE.
DATA: BEGIN OF HBSIK OCCURS 10.
INCLUDE STRUCTURE BSIK.
INCLUDE STRUCTURE BSEGA.
INCLUDE STRUCTURE RTAGE.
DATA: END OF HBSIK.
DATA: BEGIN OF REFBL OCCURS 10.
INCLUDE STRUCTURE BLKEY.
INCLUDE STRUCTURE RTAGE.
DATA: END OF REFBL.
DATA: BEGIN OF HLFB1 OCCURS 10.
INCLUDE STRUCTURE LFB1.
DATA: END OF HLFB1.
DATA: BEGIN OF HT001 OCCURS 10.
INCLUDE STRUCTURE T001.
DATA: END OF HT001.
*---- Interne Tabelle für Ausgabe der Obligos -
DATA: BEGIN OF AOBLIGO OCCURS 12,
OBART TYPE C, "Flag für Obligoart 1 = Kontokorrent
" 2 = SHBKZ
" 3 = sonstige SHB
SHBKZ LIKE T074T-SHBKZ, "SHB-Kennzeichen
LTEXT LIKE T074T-LTEXT, "Bezeichnung
OBLIG TYPE P, "Obligobetrag
END OF AOBLIGO.
*---- Declarationen für Accessibility /ALV GRID -
data: ACC_MODE type c.
Data: UEBTEXT(22) type c.
Data: UEKTEXT(15) type c.
Data: TITTEXT(100) type c.
Data: DATTEXT(10) type c.
DATA: BEGIN OF RTAB_ALV OCCURS 30,
SORTK(1) TYPE C, "0 = Summe Gesber
"1 = Summe aller Gesber
"2 = Umsatzdaten
BUKRS LIKE BSIk-BUKRS,
lifnr LIKE LFA1-lifnr,
busab like lfb1-busab,
SORTL LIKE lfA1-SORTL,
LAND1 LIKE lfA1-LAND1,
GSBER LIKE BSIk-GSBER,
WAERS LIKE BSIk-WAERS,
hwaer like rf140-hwaer,
RAART like RF140-RAART, "Rasterart
shkzg like bsik-shkzg,
XGUTS TYPE C, "Gutschrift
KUMUM LIKE RF140-KUMUMHW, "Umsatz
ANZAH like rf140-anzbthw, "Anzahlungen
OPSUM like RF140-gsaldd, "Offene Posten Summe
RAST1 like RF140-rast1, "Rasterfeld 1
RAST2 like RF140-rast2, "Rasterfeld 2
RAST3 like RF140-rast3, "Rasterfeld 3
RAST4 like RF140-rast4, "Rasterfeld 4
RAST5 like RF140-rast5, "Rasterfeld 5
RAST6 like RF140-rast6, "Rasterfeld 6
END OF RTAB_ALV.
*"General Data
TYPE-POOLS: SLIS.
*DATA: BEGIN OF GT_OUTTAB OCCURS 0.
INCLUDE STRUCTURE rtab_alv.
*DATA: END OF GT_OUTTAB.
Data: GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
G_EXIT_CAUSED_BY_CALLER,
GS_EXIT_CAUSED_BY_USER TYPE SLIS_EXIT_BY_USER,
G_REPID LIKE SY-REPID,
G_GRID_TITLE TYPE LVC_TITLE.
*"Callback
*Data: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
G_STATUS_SET TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
Data: G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
G_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
G_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
G_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
*"Variants
DATA: GS_VARIANT LIKE DISVARIANT,
G_SAVE.
Global structure of list
fieldcatalog
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
sort
*DATA: GT_SORT TYPE SLIS_T_SORTINFO_ALV.
events
*DATA: GT_EVENTS TYPE SLIS_T_EVENT.
*----- Structure for specific color settings -
*DATA: COL_TAB_T TYPE SLIS_T_SPECIALCOL_ALV,
COL_TAB TYPE SLIS_SPECIALCOL_ALV.
DATA: G_TABNAME TYPE SLIS_TABNAME VALUE 'RTAB_ALV'.
print
*DATA: GS_PRINT TYPE SLIS_PRINT_ALV.
*---- FIELD-GROUPS -
FIELD-GROUPS:
HEADER,
STAMMDATEN,
OP-RASTER,
EINZELPOSTEN.
INSERT
LFB1-BUKRS " Buchungskreis
lfB1-BUSAB " Sachbearbeiter
LFA1-LIFNR " Kontonummer
SATZART " Satzart
RTAB-SORTK " Sortkz fuer Tabelle RTAB
" '0' = normale Eintraege
" '1' = Summeneintraege
GB " Geschaeftsbereich
" - GB-GSBER
" - GB-WAERS
RASTERUU " Kennzeichen fuer Detailposten bzw Raster
ab hier nur fuer Einzelposten -
TAGE " Rastertage fuer Detailposten
BSIK-UMSKZ " Umsatzkennzeichen
BSIK-BLART " Belegart
BSIK-ZUONR " Zuordnungsnummer
BSIK-BELNR " Belegnummer
BSIK-BUZEI " Belegzeile
INTO HEADER.
INSERT
Addressdaten
ADRS-LINE0 " 1. Zeile Adressenaufbereitung
ADRS-LINE1 " 2. " "
ADRS-LINE2 " 3. " "
ADRS-LINE3 " 4. " "
ADRS-LINE4 " 5. " "
ADRS-LINE5 " 6. " "
ADRS-LINE6 " 7. " "
ADRS-LINE7 " 8. " "
ADRS-LINE8 " 9. " "
ADRS-LINE9 " 10." "
Umsatzdaten
C-KUMUM " Umsatz
C-BABZG " Berechtigt. Abzuege
C-UABZG " Unberechtigt. Abzuege
C-KZINS " Zinszahlungen
C-KUMAG " Kum. Jahresausgleich
Obligos
C-SALDO " Saldo ohne SHB-Vorgänge
C-UMKZ1 "SHBKZ 1
C-SUMS1 "Sonderumsatz 1
C-UMKZ2 "SHBKZ 2
C-SUMS2 "Sonderumsatz 2
C-UMKZ3 "SHBKZ 3
C-SUMS3 "Sonderumsatz 3
C-UMKZ4 "SHBKZ 4
C-SUMS4 "Sonderumsatz 4
C-UMKZ5 "SHBKZ 5
C-SUMS5 "Sonderumsatz 5
C-UMKZ6 "SHBKZ 6
C-SUMS6 "Sonderumsatz 6
C-UMKZ7 "SHBKZ 7
C-SUMS7 "Sonderumsatz 7
C-UMKZ8 "SHBKZ 8
C-SUMS8 "Sonderumsatz 8
C-UMKZ9 "SHBKZ 9
C-SUMS9 "Sonderumsatz 9
C-UMKZ10 "SHBKZ 10
C-SUMS10 "Sonderumsatz 10
C-SONOB " Sonst. Obligen
Limits
C-AGOBLI " Absolutes Gesamtobligo
Zahlungdaten
LFB1-ZTERM "Zahlungsbedingung
LFB1-ZAHLS "Sperrschlüssel für Zahlung
LFB1-ZWELS "Zahlwege
LFB1-XVERR "Zahlungsverrechnung
LFB1-WEBTR "Wechsellimit
LFB1-BUSAB " Sachbearbeiter
lfa1-sortl
lfa1-land1
INTO STAMMDATEN.
INSERT
RTAB-RAART "Rasterart
RTAB-SPERR "gesperrte Posten
RTAB-KUMUM "Umsatz
RTAB-ANZAH "Anzahlungen
RTAB-OPSUM "Offene Posten Summe
RTAB-RAST1 "Rasterfeld 1
RTAB-RAST2 "Rasterfeld 2
RTAB-RAST3 "Rasterfeld 3
RTAB-RAST4 "Rasterfeld 4
RTAB-RAST5 "Rasterfeld 5
RTAB-RAST6 "Rasterfeld 6
INTO OP-RASTER.
INSERT
BSIK-BUDAT " Buchungsdatum
BSIK-BLDAT " Belegdatum
BSIK-CPUDT " CPU-Datum
BKPF-USNAM " User-ID
BSIK-WAERS " Wahrungsschluessel
BSEGA-NETDT " Nettofaelligkeitsdatum
FAEDE-NETDT " Nettofaelligkeitsdatum
BSIK-ZFBDT " Zahlungsfristen-Basisdatum
BSIK-BSCHL " Buchungsschluessel
BSIK-ZLSCH " Zahlungsschluessel
BSIK-MANST " Mahnstufe
SHBETRAG " Hauswaehrungsbetrag
BSEGA-DMSHB " Hauswaehrungsbetrag
BSEGA-WRSHB " Fremwaehrungsbetrag
INTO EINZELPOSTEN.
BEGIN_OF_BLOCK 1.
*ELECT-OPTIONS:
GESBER FOR BSIK-GSBER.
PARAMETERS:
MONAT LIKE RFPDO-DOPRBMON.
SELECT-OPTIONS:
KKSALDO2 FOR RFSDO-KOPRSAL2, "Saldovortrag
AGOBLIG2 FOR RFSDO-KOPRAGO2. "Absolutes Obligo
RGOBLIGO FOR RFSDO-DOPRRGOB. "Relatives Obligo
SELECT-OPTIONS:
LAND FOR LFA1-LAND1,
KONTENGR FOR LFA1-KTOKK,
SACHBEAR FOR LFB1-BUSAB,
AKONTS FOR LFB1-AKONT,
AKONTP FOR BSIK-HKONT.
SELECT-OPTIONS:
BUDAT FOR BSIK-BUDAT,
BLDAT FOR BSIK-BLDAT,
NETDT FOR BSEGA-NETDT.
PARAMETERS: N_BELEGE LIKE RFPDO-BPETNBEL
DEFAULT 'X', "Normale Belege.
STAT_BLG LIKE RFPDO-BPETSBEL. "Statistische Belege
END_OF_BLOCK 1.
*ELECT-OPTIONS:
BERABZU1 FOR LFC1-BABZG,
UNBABZU1 FOR LFC1-UABZG,
ZINSE1 FOR LFC1-KZINS,
JHRAUSG1 FOR LFC1-KUMAG.
BERABZUG FOR BEABZUG NO-DISPLAY, "Berechtigter Abzug
UNBABZUG FOR UBABZUG NO-DISPLAY, "Unberechtigter Abzug
ZINSEN FOR KUMZINS NO-DISPLAY, "Kumulierter Zins
JHRAUSGL FOR JAHRAUG NO-DISPLAY. "Kumulierter Jahresausgl.
BEGIN_OF_BLOCK 2.
PARAMETERS:
SORTART LIKE RFPDO1-KOPRSOAR DEFAULT '1', "Doku
VERDICHT LIKE RFPDO1-KOPRVERD DEFAULT '1', "Doku
RASTVERD LIKE RFPDO1-KOPRRAST DEFAULT '0', "Doku
KONZVERS LIKE RFPDO-DOPOKONZ, "Konzernversion
XBUKRDAT LIKE RFPDO3-ALLGBUKD DEFAULT 0, "Bukr.daten
KAUSGABE like rfpdo3-ALLGKAOR.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 01(30) TEXT-030.
PARAMETERS: RART-NET LIKE RFPDO-DOPRRNET DEFAULT 'X'.
SELECTION-SCREEN COMMENT 33(01) TEXT-028.
PARAMETERS: RART-SKT LIKE RFPDO-DOPRRSKT DEFAULT 'X'.
SELECTION-SCREEN COMMENT 35(01) TEXT-028.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: RART-ALT LIKE RFPDO1-KOPRRALT DEFAULT 'X'.
SELECTION-SCREEN COMMENT 03(28) TEXT-031.
SELECTION-SCREEN POSITION POS_HIGH.
PARAMETERS RBLDAT LIKE RFPDO2-KORD10BD.
SELECTION-SCREEN COMMENT 61(12) TEXT-032.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN COMMENT 37(01) TEXT-028.
PARAMETERS: RART-UEB LIKE RFPDO-DOPRRUEB DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 01(31) TEXT-026.
PARAMETERS: RASTBIS1 LIKE RFPDO1-ALLGROGR DEFAULT '000'.
SELECTION-SCREEN COMMENT 35(02) TEXT-027.
PARAMETERS: RASTBIS2 LIKE RFPDO1-ALLGROGR DEFAULT '020'.
SELECTION-SCREEN COMMENT 41(02) TEXT-027.
PARAMETERS: RASTBIS3 LIKE RFPDO1-ALLGROGR DEFAULT '040'.
SELECTION-SCREEN COMMENT 47(02) TEXT-027.
PARAMETERS: RASTBIS4 LIKE RFPDO1-ALLGROGR DEFAULT '080'.
SELECTION-SCREEN COMMENT 53(02) TEXT-027.
PARAMETERS: RASTBIS5 LIKE RFPDO1-ALLGROGR DEFAULT '100'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 01(31) TEXT-029.
PARAMETERS: FAKTOR LIKE RFPDO-DOPRFAKT DEFAULT '0'.
SELECTION-SCREEN COMMENT 35(1) TEXT-028.
PARAMETERS: STELLEN LIKE RFPDO-DOPRFAKT DEFAULT '0'.
SELECTION-SCREEN END OF LINE.
PARAMETERS: PZUOR LIKE RFPDO2-DOPRZUOR.
PARAMETERS: UMSATZKZ LIKE RFPDO1-DOPRSHBO. "DEFAULT 'WSABIMVD'.
PARAMETERS:
TITLE LIKE RFPDO1-ALLGLINE,
LISTSEP LIKE RFPDO-ALLGLSEP,
MIKFICHE LIKE RFPDO-ALLGMIKF.
PARAMETERS:
P_LVAR LIKE Gs_VARIANT-VARIANT DEFAULT SPACE modif id 508.
END_OF_BLOCK 2.
AT SELECTION-SCREEN OUTPUT.
if acc_mode is initial.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = '508'.
SCREEN-active = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
endif.
AT SELECTION-SCREEN ON AKONTS.
Konvertierung der Kontonummer
LOOP AT AKONTS.
PERFORM ALPHAFORMAT(SAPFS000)
USING AKONTS-LOW AKONTS-LOW.
PERFORM ALPHAFORMAT(SAPFS000)
USING AKONTS-HIGH AKONTS-HIGH.
MODIFY AKONTS.
ENDLOOP.
AT SELECTION-SCREEN ON AKONTP.
Konvertierung der Kontonummer
LOOP AT AKONTP.
PERFORM ALPHAFORMAT(SAPFS000)
USING AKONTP-LOW AKONTP-LOW.
PERFORM ALPHAFORMAT(SAPFS000)
USING AKONTP-HIGH AKONTP-HIGH.
MODIFY AKONTP.
ENDLOOP.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LVAR.
Gs_VARIANT-REPORT = SY-REPID.
Gs_VARIANT-VARIANT = P_LVAR.
PERFORM F4_FOR_S_LVAR USING Gs_VARIANT.
P_LVAR = Gs_VARIANT-VARIANT.
AT SELECTION-SCREEN.
IF NOT RASTBIS5 IS INITIAL.
IF RASTBIS5 GT RASTBIS4
AND RASTBIS4 GT RASTBIS3
AND RASTBIS3 GT RASTBIS2
AND RASTBIS2 GT RASTBIS1.
ELSE.
MESSAGE E379.
ENDIF.
ELSE.
IF NOT RASTBIS4 IS INITIAL.
IF RASTBIS4 GT RASTBIS3
AND RASTBIS3 GT RASTBIS2
AND RASTBIS2 GT RASTBIS1.
ELSE.
MESSAGE E379.
ENDIF.
ELSE.
IF NOT RASTBIS3 IS INITIAL.
IF RASTBIS3 GT RASTBIS2
AND RASTBIS2 GT RASTBIS1.
ELSE.
MESSAGE E379.
ENDIF.
ELSE.
IF NOT RASTBIS2 IS INITIAL.
IF RASTBIS2 GT RASTBIS1.
ELSE.
MESSAGE E379.
EHi Laxman,
I have checked the program and found out following:
the field "acc_mode" which gets populated by FM "GET_ACCESSIBILITY_MODE".
If this field is initial, then normal list gets displayed and
If this field has value, then ALV grid gets displayed.
regards,
Dharitree
Maybe you are looking for
-
Driver Laserjet 4+ Windows 7 64 bit
The referenced printer is connected to my wife's XP machine. I shared it by way of a computer share from my Win7 machine. After changing my OS from 32 to 64 bit it appears that there is no machine specific 64 bit driver. I beleive the LaserJet 2200 S
-
8.1 full screen problems landscape
Since updating to 8.1 Tapping to view videos in full screen goes to portrait full screen instead of landscape full screen while in landscape position. There are also problems trying to full screen in portrait position. i pad mini retna 16 gig Geen
-
Trouble with mobile site. Displays for a second then screen goes black.
Trouble with mobile site. Displays for a second then screen goes black. Using safari, 4s on Verizon. Example: m.mlb.com/lad/
-
I have a folder in Word 11 with word documents. Is there a way to access individual docments in icloud from my iphone or ipad without putting the entire folder on the iphone or ipad?
-
Colours too rich and dark when printing
Hello! I am having slight problems printing photos in iPhoto. The photos look great on my laptop: PowerBook G4 (OS 10.4.7), iPhoto 6.0.4 (305). The printer is a new Canon Pixma MP 500 (bought because of good reviews for photo printing.) When printed