Profit Center status is inactive
We have profit centers that we have marked for deletion that is the status is Iactive.
But the system still allows postings to the profit center.
Have we missed a step?
Thanks
Ravi Rana
Hi,
In PCA you lock the profit center if you do not wish to post to the profit center.
A status of inactive is exactly that ... inactive and not active. This means that the settings you have done are not active in SAP yet. Be careful not to shorten the validity period. You should get a message if this is what you have done. Anyway, you would need to activate the status. You can see that by using the icon near the status field in the Basic Data tab. It will switch between the active and inactive status and if you look at the settings and the validity period you should see where the inactive has the changes but not the active status. Again though inactive means not live in SAP yet and the active status is what SAP checks against.
To activate use the match icon.
Hope it helps ....if it does pl assign points
Regards
Sudhanshut
Similar Messages
-
Can we limit the profit center at plant level?
Hi Experts,
I need to limit a profit center for certain plant, is this possible?
Example:
Profit center should be inactive for plant P100.
Thanks,
KumarHi Kumar
This will have larger implications
1. You need to ensure that Mat Masters are updated with right PC.. You can use a BADI to substitute the PC automatically at the time of Mat master creation
2. In Cost centers, that you make per plant, you will have to ensure this manually or using Exit COOMKS02
3. Similarly, for Int orders and other Cost objects
4. you can also write a substituion in FI to check Plant and PC combination.. But if master data is ensured, you dont need substitution
Br. Ajay M -
Definition of Inactive profit center
Hi,
can anyone explain me the meaning of Inactive Profit center.
By making incative, the posting goes through and if i lock, the postings are blocked. so what is the use of Inactive:Change, which come when I change the status..
Thanks.inactive profit centres and how to-do procedure
The common practice to prevent postings to inactive profit centre is to lock the profit centre. Inactive does not necessary mean that it is not locked.... it merely meant that it is not longer used for posting. Otherwise, you might want to consider adding text description to indicate the inactive status.
The system does not post data to the changed version of the profit center until you have activated by choosing , thereby replacing the previous active version. When you activate the changed version, the system carries out the necessary checks. However, you can also have the system carry out these checks before activation, by choosing .
If an inactive version of a profit center exists, which you no longer require, remove it by choosing Edit ® Remove Inactive Version. Thereafter, the profit center exists in active status only. -
Delete inactive profit center-regarding
hi
i created profit centers under standard hierarchy, now i want to delete some profit centers. i deactivated profit some centers and deleted the same, but deleted profit centers saving in active status. anybody give me solutionHello
T/Code: KE54
Enter profit center.
SCREEN: Delete Profit Center
1. Enter Profit center to be deleted.
2. Click Enter.
II. Mark profit center for deletion.
1. Click on <Mark for deletion>.
2. Click on <Activate>.
3. Click <Yes>.
Next Steps:
No action Required
/ Check how to deactivate the PC before deletion.
Reg
Suresh -
Profit center lock indicator has no effect
Hi all,
I have following situation:
A cost center X is assigned to a Profit center Y. Profit centre Y has status "Inactive:change" and is valid from 01-01-2002 to 31-12-2008. Also, the lock indicator has been set and the assignment to company code 0011 has been de-activated.
Cost centre X is valid from 01-01-2008 to 31-12-9999.
I would expect that:
1) It would not have been possible to assign profit center Y to cost center X due to the limited validity date of profit center Y
2) Posting to cost center X (and profit center Y) would lead to an error message for documents with a posting date in 2009
However, SAP allows me to assign profit center Y and make postings in 2009 without a problem. The help texts and several notes I found all suggest my expected system behaviour. So am I doing anything wrong or how can I prevent assignment of profit center Y and postings being made to it in 2009?
Thanks in advance!
ReneHello,
If you have created a profit center in inactivate status, they system cannot read the details of the same and you are not able to assign the same to a Cost Center.
If the lock indicator is being set in profit center, you cannot use the cost center to which the locked profit center is being assigned. It will stop you at the time of posting the FI journal.
If you have removed the check box for a company code in profit center, it will stop you from being posted to the cost center to which the profit center, where the tick for company code has been removed.
Only profit centers which are in active state can be assigned to a cost center.
If you have locked a profit center and trying to assign the same to a cost center, the system throws the warning message at the time of assignment. But, however, you can further proceed with that.
If the validity period of the profit center is 01.01.2008 to 31.12.2008 and assigned to a cost center, in turn you are using that cost center as an real assignment object, it will stop from being posted the document, stating that the profit center is not valid for that period.
Please let me know if you have any further concerns.
Thanks,
Ravi -
How to make field 'profit center' as non-mandatory in Transaction F-28?
Transaction F-28 shows Profit Center field as mandatory. How to make it optional; i have already checked it in field status groups-its suppressed over there?
Field status groups are suppressed. I have also checked posting keys and posting keys assigned to the relevant Bank G/L Account.
Document splitting is inactive on my company code.
Payments can be processed through transaction code: F-26 (Incoming Payment: fast entry) without Profit Center requirement.
But at F-28 (Incoming payment), profit center is mandatory.
Any Help in this regard will be appreciated.
Thanks.
Arslan Qureshi.Thank You Karan
I have Un-checked profit center accounting at transaction OKKP, but no effect.
why can i post incoming payment through F-26 but not F-28.
Also Document type is DZ in both Transactions. its only in F-28 that it askes for Profit Center
Thanks
Arslan -
Tcode : KCH5N - profit center group heirarchey
Hi All,
When ever we try to change the profit center group of a profit center using drag n drop in tcode KCH5N , the status is still in active state.
But when we try to do it manually some changes for the data that is related to a profit center(even when we assign a profit center to a new profit center group ) it will be in inactive state.
Is this a standard functionality provided by sap? Can any body explain the same.
It would be gr8 if any one can let me know is ther any user exits that are related to the tcode : kch5n.
pointers will be appreciated.Do you mean to say only when some change is done manually state wil be moved to inactvive,even if the change is related to hierarchy (change in profit group for a profit center).
but i could see,if am going to use the drog drop for changing the profit group in tcode kch5n then the state is not changed to inactive.? -
ECCS - Adding Profit Center to Company Code Consolidation
Hello Gurus,
We use ECCS for our consolidation. We do only Legal consolidation and we also use Functional Area as a sub-item category for all the IS accounts. We are now trying to add Profit Center as one of the attributes. Initially, we planned to use the sub-item category, however, we can have only one and it's already taken by Functional Area. Is there a way I can
1. Add PC as an attribute
2. Enhance ECMCT to allow additional Sub-item?
Appreciate your advice and guidance.
Regards,
VenkatThe documentation at the menu path: t-code SPRO > Enterprise Controlling > Consolidation > Add Characteristics states:
Add Characteristics
The SAP standard consolidation database includes various preset characteristics, such as the consolidation unit, the financial statement (FS) item, the subitem, etc. If the information requirements of your group demand additional fields, you can define your own socalled custom characteristics.
This step shows you two ways to add characteristics to the consolidation database:
You can add up to five subassignments to the FS item.
You can add navigation attributes to the characteristic consolidation unit. The system then automatically assigns the same attribute to the characteristics partner unit and investee unit as well.
After adding a characteristic, the system generates the associated ABAP Dictionary objects and maintenance views.
To the consolidation database, you can also add characteristics based on structures that already exist in the SAP system (e.g. Region). However, you can also add characteristics, the structures of which still need to be generated.
Recommendation
Since custom characteristics extend the consolidation database, you should carefully examine which characteristics are to be added. SAP recommends, in particular, that you first finish creating the new characteristics, and that you make sure that want to use this set of data, before you activate the new characteristics and start the generation. This way you can avoid time-consuming deletions if a characteristic must be removed. Also, keep in mind that you can no longer delete a characteristic once you have posted data with the characteristic.
Example
Examples of subassignments for FS items are the Product Group and the Geographic Region.
An example of an attribute for consolidation units is the Company Type.
Standard settings
The standard SAP system already includes the following subassignments for FS items:
Partner unit
Subitem category and subitem
Transaction currency
Acquisition year
Acquisition period
Unit of measure
The standard SAP system already includes the following attributes for the consolidation unit:
Country
Company
Consolidation business area
Profit center
Controlling area
The attributes company, cons business area, profit center and controlling area are particularly useful when you use the integrated collection of reported financial data from your consolidation units.
Activities
1. Reorganize the field catalog. When this is done, the system copies the system field catalog into the customer field catalog. Choose Extras -> Field catalog -> Reorganize.
If you use integrated collection of reported data, during the reorganization you should include SAP's standard attributes in the selection. Note that, initially, these attributes are not included in the Reorganization selection screen.
2. If desired, create one or more new characteristics.
Enter the technical name (field name) of the new characteristic. The technical name must begin with the letters "ZZ".
Also set the appropriate indicator to define how the structure of the characteristic is to be built.
Technical Background Information:
Description, type, and length are properties of characteristics that you can enter directly or define by assigning a data element or domain. Data elements and domains are ABAP Dictionary objects that act as a central store of table field properties:
A data element defines the meaning of a field in business terms with texts and a reference to a domain.
A domain describes the technical properties of the field and defines permissible values for the characteristic if either of the following conditions is met:
- There is a list defining fixed values
- There is a reference to a check table
Normally data element and domain assignments are used to refer to check tables. You can, however, create a characteristic without any validation or texts by assigning a standard domain (for example CHAR07, NUM12).
Ways to create a characteristic:
a) Assigning a data element
Activate this indicator and assign a data element. The domain assignment is made by assigning the data element.
Note: If you run the elimination of IU profit/loss in transferred inventory and the system reads the required additional financial data from the totals database, you need to create the characteristic "product group" and assign it to data element FC_PRGRP.
b) Assigning a domain
Activate this indicator, then specify the meaning and assign a domain. By assigning a domain you define the type and length of the characteristic, and possibly you refer to fixed values or a check table.
c) Referencing a characteristic
Activate this indicator, then specify the description and set a reference to another characteristic. This has the effect of assigning the domain of the referenced characteristic.
d) Creating a characteristic with a new data element and check table
Activate this indicator, the specify the description, type (character or numeric), and length (1-32). The system generates a new check table for the characteristic.
e) Creating a characteristic without a check table (using a standard domain)
Activate this indicator and specify the description, type (character or numeric), and length (1-32). The system does not generate a check table.
Caution: Assigning data elements or domains does not itself ensure that validation, reading characteristic value texts, and Possible Entries Help will work as expected. The following conditions must be given:
The domain must have a check table or fixed values.
There must be either a text table with references to the check table, or the texts must be in the check table itself.
These conditions are always fulfilled by fields in the standard field catalog.
3. If needed, define compound relationships between characteristics in the detail screen of Characteristic Maintenance.
Some characteristics are dependent on other characteristics; that is, the values of dependent characteristics are meaningless in theabsence of values for independent characteristics. Such a relationship is called a characteristic compound. Technically, a check table then contains a key that consists of two parts.
Example: The Region, a dependent characteristic (check table T005S), forms a compound characteristic with the Country, an independent characteristic, because a region can be maintained or interpreted only if a country is specified.
Note the following restrictions when defining compounds:
Compounds can only be defined for characteristics that have a check table.
When a data element/domain is assigned, a compound is predefined by the existing check table.
Compounds can only be defined while creating a dependent characteristic. You do this by specifying the independent characteristic in the detail screen.
Only single compounds are permitted. Multiple compounds cannot be made.
The compound must be defined while creating a new characteristic, and before the new characteristic is saved. This is because the save process generates the check table for the characteristic.
Note: You do not use characteristic compounds to create regular assignments between two fields (such as, consolidation unit A having the local currency USD). Rather, a compound characteristic describes the structural dependency of one field on another (as in FS item 1111 in cons chart of accounts 01 being a different item than FS item 1111 in cons chart of accounts 02).
4. Specify further properties of the characteristic:
Define the display options and the sequence number of the characteristic for reports and so forth.
Activate the Subassignment indicator for all characteristics used as subassignments for FS items.
Activate the Fixed value in breakdown category indicator for all subassignments whose value is determined by the breakdown category (e.g., as with the characteristic subitem category).
Activate the Default value indicator if applicable. Then the characteristic appears in the implementation step Define Default Values. A default value is not necessary and cannot be set if you activate the Fixed value in breakdown category indicator
5. Enhance the checking specifications if needed:
For characteristics without a standard check table, you can enter a text table, a text field, and a long text field. The text fields must use the field type character. You can also specify a view name, usually a view of the check table and text table.
If the system fails to automatically determine the transaction codes for displaying and changing the master data, you can specify them manually.
6. To the characteristic consolidation unit assign any newly created characteristics as an attribute. Only independent characteristics can be assigned as attributes to consolidation units.
These attributes are used for sorting your consolidation units.
Note: Prerequisite for assigning attributes is the reorganization of the field catalog, that is, you need to have copied the field catalog into the customer field catalog. To do this, choose Extras -> Field catalog -> Reorganize.
7. Save and activate the new characteristic.
The Save process stores the new data and, if applicable, creates new tables and views in the ABAP Dictionary.
The Activation process sets the status of the tables, views, data elements, etc. to "active". It also generates the objects that are necessary to enable the consolidation functions to process the new characteristics.
You can activate several characteristics in one step by choosing characteristic maintenance of all characteristics in the initial screen, selecting and activating the inactive characteristics.
8. After activating the characteristic, you are asked whether to generate the view modules. Confirm the generation.
If you exit Characteristic Maintenance and want to ensure that all view modules were generated correctly, choose Environment -> View maintenance modules -> Reorganize.
9. Assign the new characteristics to field groups, if applicable.
Field groups are groupings of characteristics. These let you structure the fields in the field catalog. Individual fields may belong to multiple field groups.
Further notes
Choose Extras -> Log display to display the logs for the activities Save, Activate and Delete.
Edited by: Dan Sullivan on Oct 6, 2011 9:38 AM -
Profit Center - Mark For Deletion
Hi all,
I created one profit center and i have not used this profit center in any postings.But When i am using t code KE54 to delete profit centers, iam getting an error message in the status bar as
"A profit center scenario is active in new General Ledger Accounting"...
I want to set the deletion mark for this Profit center..
Can anyone help me on this issue.Hi,
Deleting Profit Centers (Individual Processing)
You can delete a profit center in the Profit Center Accounting application menu, under Master Data u2192 Profit Center u2192 Individual Processing u2192 Delete (KE54).
Prerequisites
Before deleting the profit center, the system carries out a number of checks.
The profit center cannot be deleted if transaction data has already been posted to it and/or the
profit center is assigned to the following objects:
Cost centers
Materials
Business processes
Assignments to other object types, however, do not prevent you from deleting the profit center.
Only delete profit centers which you have never used productively, or have not used for a number of business periods. Should you decide to remove a profit center from
the system which has already been used operatively, as you no longer need it, use the transaction Change profit center and restrict the future validity period of the profit center.
Procedure
1. Choose to mark the profit center for deletion.
The system gives the profit center the status deletion inactive. The active status of the profit center, which can receive postings, is not yet deleted however. You can
switch between the active and inactive status of the profit center by choosing .
2. Should you decide to reverse the previous step, choose Edit u2192 Remove Inactive Version.
3. The system does not delete the profit center entirely until you active the deletion by choosing Activate. The system now carries out the checks mentioned above. However, you can also carry out these checks before activation, by choosing "check". -
Open field Profit center on Vendor item
Hi Guru
How I can open field profit centr or cost center on vendor item when i post document . I try open in field status group and open in posting key but it not success. Help me please . thank you vrery much.
methinee.sHi Srinu
thank you for your answer but I have some question when I posting vendor code with posting key 29 and specail gl (target gl accoun is a balanc sheet account ) thd screen layout have profit center and can input profit caner no. thank you verymuch.
Methinee.s -
Profit Center populated in FBL5N Report
Dear Friends,
our client is asking for getting profit center in the customer line items where in the view FBL5n we are not getting the profit center populated in the report, but our business is not satisfied with report and expecting that profit center should populate in the report.
Can any one suggest any way of doing this.
Thanks in advance.
Regards, MD.
Moderator: Please, search SDNHi Prasana
As per your issue 1st you have maintain the required entry in filed status group level as well as at posting key level in the General TAB and select Reference specification 1/2 as a require entry after that you have to MAP in the T code OB32 at account type level
Eg: D BSEG-XREF1 Reference key 1
D BSEG-XREF2 Reference key 2
S BSEG-XREF1 Reference key 1
S BSEG-XREF2 Reference key 2
S BSEG-XREF3 Reference key 3
Like above based your requirement you have to maintain
- Document change rules line item (TC: OB32)
- Posting key (TC: OB41)
- Field status groups (SPRO -> FI -> FI Global settings -> Ledgers -> Fields -> Define field status variants)
- Special field display (SPRO -> FI -> GL Accounting -> Master Data -> GL Accounts -> Line items -> Define Special Fields for Line item display)
- Doccument change rules header (SPRO -> FI -> FI Global settings -> Document -> Rules for changing documents -> Document change rules, document header)
After that while you posting any transaction data you have to enter reference key1 and 2 filed at more data Tab where you can see at header level tabs
Finally you can able see in the FBL5N report...same case we have faced previously it was resolved
I hope it will helps you
Thanks and Regards
sudharshana vamsi -
How to set default value in Profit Center field of Tcode F-02.
Hi!
Is it possible to set a default value for 'Profit Center' field in t.code F-02? Is there a way wherein the value will be copied in reference to the entered Business Area?
For example, if during parking/posting of document, user input a value of 300 in the Business Area field, the system will automatically put 300 in the Profit Center field. Is there a way to do this?
Hoping for your feedback.
Thanks,
AprilHi
Using the substitution this can be achieved.
TC:GGB1
Step-1: Prerequiste select the Company code for which this requirement is needed
Step-2: In Substitution field, select the the "Profit center" field on selection of the field - system'll asks you - How would you like to substfield BSEG-PRCTR ? with the 3 options
i.constant value
ii.exit
iii.Field-Field assignment
Select the 3rd option on selecting 3rd option before going to save that substitution it'll ask you to input which field should input the field BSEG-GSBER:Business area
Step-3: activate the above substitution in TC:OBBH
With the above settings whenever any value inputs in Business are field then the same value will be substituted in the Profit center field.
Note: Make sure in all FSG - business area & profit center having the field status optional
Can you tell me onething why this requirement has came ? Is business area and profit center are same in number and prupose
regards
Ramana
Edited by: Ramana on Jan 8, 2008 9:33 AM -
Calculation of customer payment performance by profit center
I want to calculate customer payment performance by profit center it is a report.
Caluation clue.
<b>Performance is a measure of when the payment was made versus the due date calculated by the payment terms</b>.
i want the logic to be included in the following code.
REPORT
TABLE DECLARATIONS
TABLES: BFOD_A, "FI subsequent BA/PC adjustment: Customer items
BSID, "Open Items
BSAD, "Cleared Items
BKPF, "Docuemnt Header
KNA1, "Customer Master
CEPCT, "Texts for Profit Center Master Data
CEPC, "Profit center master data table
SKB1, "G/L account master
VBFA, "Sales Document Flow
VBAK. "Sales Document: Header Data
CONTROLS: TABAGING TYPE TABLEVIEW USING SCREEN 9000.
FIELD-SYMBOLS: <COLUMN>.
Internal tables followed by types
TYPES: BEGIN OF T_TOTAL,
WAERS LIKE COEP-TWAER,
DAYS01 LIKE COEP-WTGBTR,
DAYS02 LIKE COEP-WTGBTR,
DAYS03 LIKE COEP-WTGBTR,
DAYS04 LIKE COEP-WTGBTR,
DAYS05 LIKE COEP-WTGBTR,
TOTAL LIKE COEP-WTGBTR,
END OF T_TOTAL.
DATA: V_DISVARIANT TYPE DISVARIANT,
REF_CUSTOM TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
REF_ALV_ZRPT TYPE REF TO CL_GUI_ALV_GRID.
DATA: V_SAVE(1) TYPE C,
V_DEFAULT(1) TYPE C,
V_VARIANT TYPE DISVARIANT,
V_SORT TYPE LVC_S_SORT,
V_LAYOUT TYPE LVC_S_LAYO,
V_SAVE_TABIX LIKE SY-TABIX,
V_SAVE_TIME LIKE SY-UZEIT,
V_ALV_FIELDCAT TYPE LVC_S_FCAT,
V_SAVE_INDEX LIKE SY-TABIX,
V_ROW TYPE LVC_S_ROW,
V_ROWS TYPE LINE OF LVC_T_ROW.
DATA: BEGIN OF V_HDR,
CURKY(9) TYPE C,
CURR(20) TYPE C,
COL1(20) TYPE C,
COL2(20) TYPE C,
COL3(20) TYPE C,
COL4(20) TYPE C,
TOTAL(20) TYPE C,
END OF V_HDR.
DATA: BEGIN OF V_FIELD,
NAME(15) TYPE C,
VALUE(17) TYPE C,
END OF V_FIELD.
DATA: BEGIN OF I_BFOD_A OCCURS 0,
PRCTR LIKE BFOD_A-PRCTR,
KUNNR LIKE BFOD_A-KUNNR,
BUKRS LIKE BFOD_A-BUKRS,
GJAHR LIKE BFOD_A-GJAHR,
BELNR LIKE BFOD_A-BELNR,
BUZEI LIKE BFOD_A-BUZEI,
AUGDT LIKE BFOD_A-AUGDT,
HKONT LIKE BFOD_A-HKONT,
BUDAT LIKE BFOD_A-BUDAT,
SHKZG LIKE BFOD_A-SHKZG,
DMBTR LIKE BFOD_A-DMBTR,
DMBE2 LIKE BFOD_A-DMBE2,
END OF I_BFOD_A.
DATA: I_SET_VALUES LIKE SETVALUES OCCURS 0 WITH HEADER LINE,
I_SORT TYPE LVC_T_SORT,
I_ALV_FIELDCAT TYPE LVC_T_FCAT,
I_PRCTR_COCD TYPE FCINPCA001 OCCURS 0 WITH HEADER LINE,
I_BFODA_KUNNR LIKE I_BFOD_A OCCURS 0 WITH HEADER LINE,
Begin of changes for DEVK909110
I_REPORT TYPE ZFR0ARPR_S1 OCCURS 0 WITH HEADER LINE,
I_REPORT TYPE ZPSS_ARBYPC OCCURS 0 WITH HEADER LINE,
End of changes for DEVK909110
I_FAEDE LIKE FAEDE,
I_TOTAL TYPE T_TOTAL OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF I_BKPF OCCURS 0,
BUKRS LIKE BKPF-BUKRS,
BELNR LIKE BKPF-BELNR,
GJAHR LIKE BKPF-GJAHR,
BKTXT LIKE BKPF-BKTXT,
XBLNR LIKE BKPF-XBLNR,
HWAER LIKE BKPF-HWAER,
HWAE2 LIKE BKPF-HWAE2,
END OF I_BKPF.
*... combine BSAD and BSID
DATA: BEGIN OF I_BSYD OCCURS 0,
KUNNR LIKE BSID-KUNNR,
BUKRS LIKE BSID-BUKRS,
GJAHR LIKE BSID-GJAHR,
BELNR LIKE BSID-BELNR,
BUZEI LIKE BSID-BUZEI,
AUGDT LIKE BSID-AUGDT,
BLDAT LIKE BSID-BLDAT,
BUDAT LIKE BSID-BUDAT,
HKONT LIKE BSID-HKONT,
WAERS LIKE BSID-WAERS,
ZFBDT LIKE BSID-ZFBDT,
ZBD1T LIKE BSID-ZBD1T,
ZBD2T LIKE BSID-ZBD2T,
ZBD3T LIKE BSID-ZBD3T,
XBLNR LIKE BSID-XBLNR,
REBZG LIKE BSID-REBZG,
SHKZG LIKE BSID-SHKZG,
DMBTR LIKE BSID-DMBTR,
WRBTR LIKE BSID-WRBTR,
END OF I_BSYD.
DATA: BEGIN OF I_CEPC OCCURS 0,
PRCTR LIKE CEPC-PRCTR,
KHINR LIKE CEPC-KHINR,
END OF I_CEPC.
DATA: BEGIN OF I_CEPCT OCCURS 0,
PRCTR LIKE CEPCT-PRCTR,
MCTXT LIKE CEPCT-MCTXT,
END OF I_CEPCT.
DATA: BEGIN OF I_PRCTR OCCURS 0,
PRCTR LIKE BFOD_A-PRCTR,
END OF I_PRCTR.
DATA: BEGIN OF I_KNA1 OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
END OF I_KNA1.
Working Variables Declarations
*... accumulators
DATA: V_BFOD_TXNAMT LIKE BSID-WRBTR, "transaction currency amt
V_FRCURR LIKE TCURR-FCURR, "local currency
V_TOCURR LIKE TCURR-FCURR, "local currency
V_LCURR LIKE T001-WAERS, "local currency
V_CUSTTOTUSD LIKE BFOD_A-DMBE2, "customer total grp curr
V_TOTAL LIKE BPPE-WTP03, "days total grp curr
V_CURRENT LIKE BPPE-WTP03, "days current grp curr
V_TOTAL_USD LIKE BPPE-WTP03, "days total grp curr
V_TOTAL_ROW LIKE BPPE-WTP03. "total of local curr/row
DATA: V_PRCTR LIKE CEPC-PRCTR, "profit center
V_SUBRC LIKE SY-SUBRC,
V_FLAG TYPE I,
V_DPAST TYPE I, "past due days working
V_GRAND TYPE C,
V_DIFF_COLOR TYPE C,
V_MSG(50) TYPE C,
V_SAVE_PCFN(128) TYPE C,
V_EXTENSION(4) TYPE C,
V_PREV_PRCTR LIKE CEPC-PRCTR,
V_POS LIKE SY-FDPOS,
V_SAVE_BUKRS LIKE BFOD_A-BUKRS,
V_SAVE_KHINR LIKE CEPC-KHINR,
V_PERC TYPE P DECIMALS 10,
V_ZBD1T LIKE BSID-ZBD1T,
V_ZFBDT LIKE BSID-ZFBDT,
V_GROUP_CLASS LIKE RGSBS-CLASS,
V_GROUP_NAME LIKE RGSBS-SETNR,
V_GROUP_TITLE LIKE RGSBS-TITLE,
V_SETID LIKE SETHIER-SETID,
V_FILETYPE LIKE RLGRAP-FILETYPE VALUE 'DAT',
V_CNT LIKE SY-TABIX,
V_PREV_BELNR LIKE BSID-BELNR,
V_REPORT1 LIKE I_REPORT,
V_REPORT LIKE I_REPORT,
V_TABIX LIKE SY-TABIX.
Constants
CONSTANTS:
C_0H(2) TYPE C VALUE '0H',
C_0106(4) TYPE C VALUE '0106',
C_SPACE(11) TYPE C VALUE ' ',
C_USD(3) TYPE C VALUE 'USD',
C_KBRC LIKE CEPC-KOKRS VALUE 'KBRC',
C_TXT(4) TYPE C VALUE '.txt',
C_XLS(4) TYPE C VALUE '.xls',
C_RTF(4) TYPE C VALUE '.rtf',
C_PERIOD(1) TYPE C VALUE '.',
C_TODATE LIKE CEPC-DATBI VALUE '99991231'.
RANGES: R_KUNNR FOR KNA1-KUNNR. "Customer
Selection Screen Parameters and Select-options
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_KHINR LIKE CEPC-KHINR.
SELECT-OPTIONS: S_PRCTR FOR CEPC-PRCTR,
S_KUNNR FOR KNA1-KUNNR,
S_BUKRS FOR BKPF-BUKRS,
S_HKONT FOR SKB1-SAKNR.
PARAMETERS: P_BUDAT LIKE BFOD_A-BUDAT OBLIGATORY.
SELECTION-SCREEN ULINE.
SELECT-OPTIONS: S_BELNR FOR BFOD_A-BELNR,
S_AUART FOR VBAK-AUART,
S_VTWEG FOR VBAK-VTWEG,
S_VBTYP FOR VBFA-VBTYP_V.
SELECTION-SCREEN ULINE.
PARAMETERS: P_AGEDY TYPE ZZAGEMULT DEFAULT '30' OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
PARAMETERS: P_DSVAR LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK B2.
class lcl_event_receiver: local class to handle event DOUBLE_CLICK
Definition:
CLASS LCL_EVENT_RECEIVER DEFINITION.
PUBLIC SECTION.
METHODS:
MTH_PRINT_TOP_OF_PAGE
FOR EVENT PRINT_TOP_OF_PAGE OF CL_GUI_ALV_GRID.
METHODS:
MTH_PRINT_TOP_OF_LIST
FOR EVENT PRINT_TOP_OF_LIST OF CL_GUI_ALV_GRID.
PRIVATE SECTION.
ENDCLASS. "lcl_event_receiver DEFINITION
class lcl_event_receiver: local class to handle event DOUBLE_CLICK
Implementation:
CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.
METHOD MTH_PRINT_TOP_OF_PAGE.
CALL FUNCTION 'Z_CA_STD_HEADER'
EXPORTING
HEADING = SY-TITLE
P_REPID = SY-CPROG
LINE_WIDTH = SY-LINSZ.
ENDMETHOD. "MTH_PRINT_TOP_OF_PAGE
METHOD MTH_PRINT_TOP_OF_LIST.
CALL FUNCTION 'Z_CA_STD_HEADER'
EXPORTING
HEADING = SY-TITLE
P_REPID = SY-CPROG
LINE_WIDTH = SY-LINSZ.
CALL FUNCTION 'Z_CA_PRINT_SELECTION_OPTIONS'
EXPORTING
P_PGMN = SY-CPROG
P_SKIP = 'X'
P_NOTOP = 'X'.
NEW-PAGE.
ENDMETHOD. "MTH_PRINT_TOP_OF_LIST
ENDCLASS. "LCL_EVENT_RECEIVER IMPLEMENTATION
DATA: REF_EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER.
Selection Screen Prompt values
At Selection Screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_DSVAR.
DATA: LS_DISPLAY_VARIANT TYPE DISVARIANT.
Get the display variant
V_DISVARIANT-REPORT = SY-CPROG.
V_DISVARIANT-VARIANT = P_DSVAR.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = V_DISVARIANT
I_SAVE = 'A'
IMPORTING
ES_VARIANT = LS_DISPLAY_VARIANT
EXCEPTIONS
OTHERS = 3.
Load results to parameter
IF SY-SUBRC = 0 AND NOT LS_DISPLAY_VARIANT IS INITIAL.
P_DSVAR = LS_DISPLAY_VARIANT-VARIANT.
ENDIF.
*...performed when looking for values in fields
performs the drop down selection list
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_KHINR. "Profit center grp
PERFORM F_GET_S_KHINR.
Selection Screen validations
AT SELECTION-SCREEN.
IF P_KHINR IS INITIAL.
IF S_PRCTR[] IS INITIAL.
IF S_BUKRS[] IS INITIAL.
MESSAGE E000 WITH TEXT-300 TEXT-302.
ENDIF.
ENDIF.
ELSE.
IF S_PRCTR[] IS INITIAL.
PERFORM F_VALIDATE_KHINR.
ELSE.
*.. Error msg: Please enter either a Profit Center Group or a
profit center, but not both
MESSAGE E000 WITH TEXT-300 TEXT-301.
EXIT.
ENDIF.
ENDIF.
IF NOT S_AUART[] IS INITIAL.
MESSAGE E000 WITH TEXT-303.
ENDIF.
IF NOT S_VTWEG[] IS INITIAL.
MESSAGE E000 WITH TEXT-304.
ENDIF.
Event AT LINE-SELECTION
AT LINE-SELECTION.
CHECK SY-LSIND LE 1.
CHECK NOT I_REPORT-BELNR IS INITIAL.
SET PARAMETER ID 'BLN' FIELD I_REPORT-BELNR.
SET PARAMETER ID 'BUK' FIELD I_REPORT-BUKRS.
SET PARAMETER ID 'GJR' FIELD I_REPORT-GJAHR.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
CLEAR: I_REPORT-BELNR, I_REPORT-BUKRS, I_REPORT-GJAHR.
INITIALIZATION
INITIALIZATION.
START OF MAIN PROCESSING
START-OF-SELECTION.
Check aging days multiplier
IF P_AGEDY LE 0.
MESSAGE S000 WITH 'Aging Days Multiplier must be greater than zero'.
EXIT.
ENDIF.
Populate the s_prctr from a profit center group
IF NOT I_SET_VALUES[] IS INITIAL.
PERFORM F_POPULATE_PRCTR_FROM_PRCTRGRP.
ENDIF.
Build and validate prctr against cepc table
IF NOT S_PRCTR[] IS INITIAL.
PERFORM F_BUILD_I_CEPC_TABLE. "FILLS THE VALID PROFIT CTR TABLE
ENDIF.
Get base selections
PERFORM F_SELECT_DATA. "BUILD REF INTERNAL TABLES
Get additional fields and build reporting structure
PERFORM F_BUILD_I_REPORT. "BUILDS INTERNAL REPORTING TABLE
Generate ALV report
PERFORM F_WRITE_REPORT. "WRITES i_report AND RUNS CALCS
END-OF-SELECTION.
FREE: I_BFOD_A, I_KNA1, I_CEPC, I_CEPCT, I_REPORT.
Form F_DIS_MSG
FORM F_DIS_MSG USING VALUE(P_PERCENTAGE) VALUE(P_TEXT).
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = P_PERCENTAGE
TEXT = P_TEXT
EXCEPTIONS
OTHERS = 1.
ENDFORM. " F_DIS_MSG
Form F_GET_S_KHINR
Get prompt values for Profit Center Group
FORM F_GET_S_KHINR.
PERFORM F_DIS_MSG USING 100 'Get prompt values for Profit Ctr Group.'.
COMMIT WORK.
CALL FUNCTION 'K_GROUP_SELECT'
EXPORTING
BUTTONS = 'X'
CLASS = '0H '
CRUSER = '*'
FIELD_NAME = 'RPRCTR'
SEARCHFLD = 'KBRC'
SEARCHFLD_INPUT = ' '
SEARCHFLD_REQUIRED = 'X'
SET = '*'
START_COLUMN = 10
START_ROW = 5
TABLE = 'GLPCT'
TYPELIST = 'BS'
UPDUSER = '*'
IMPORTING
CLASS_NAME = V_GROUP_CLASS
SET_NAME = V_GROUP_NAME
SET_TITLE = V_GROUP_TITLE
EXCEPTIONS
NO_SET_PICKED = 1
OTHERS = 2.
IF SY-SUBRC = 0.
P_KHINR = V_GROUP_NAME.
ENDIF.
ENDFORM. " F_GET_S_KHINR
FORM F_VALIDATE_KHINR *
FORM F_VALIDATE_KHINR.
PERFORM F_DIS_MSG USING 100 'Validate Profit Center group.'.
COMMIT WORK.
CLEAR I_SET_VALUES.
REFRESH I_SET_VALUES.
CONCATENATE C_0106 C_KBRC P_KHINR INTO V_SETID.
CONDENSE V_SETID.
CALL FUNCTION 'G_SET_TREE_IMPORT'
EXPORTING
CLIENT = SY-MANDT
FIELDNAME = 'RPRCTR'
LANGU = SY-LANGU
SETID = V_SETID
TABNAME = 'GLPCT'
NO_TABLE_BUFFERING = 'X'
TABLES
SET_VALUES = I_SET_VALUES
EXCEPTIONS
SET_NOT_FOUND = 1
ILLEGAL_FIELD_REPLACEMENT = 2
ILLEGAL_TABLE_REPLACEMENT = 3
OTHERS = 4.
IF SY-SUBRC NE 0.
E: Unable to find Profit Center Group & - please modify selection
MESSAGE E000 WITH TEXT-002 P_KHINR.
ENDIF.
IF I_SET_VALUES[] IS INITIAL.
MESSAGE E000 WITH P_KHINR TEXT-039.
ENDIF.
ENDFORM. " F_VALIDATE_KHINR
Form F_SELECT_DATA
FORM F_SELECT_DATA.
PERFORM F_DIS_MSG USING 100 'Retrieve info from SAP tables.'.
COMMIT WORK.
Build the BFOD_A internal table based on user selections
f i_cepc table is initial, it means derive all prctr under a co cd
IF S_PRCTR[] IS INITIAL.
PERFORM F_RETRIEVE_BFODA_BY_COMPANY.
ELSE.
PERFORM F_RETRIEVE_BFODA_BY_PRCTR.
ENDIF.
IF I_BFOD_A[] IS INITIAL.
*... No records fit selection criteria.
MESSAGE E000 WITH TEXT-H20.
ENDIF.
Get the text for profit center
SELECT SPRAS PRCTR DATBI KOKRS MCTXT FROM CEPCT
INTO CORRESPONDING FIELDS OF TABLE I_CEPCT
FOR ALL ENTRIES IN I_CEPC
WHERE SPRAS = SY-LANGU
AND PRCTR = I_CEPC-PRCTR.
Build an internal table of unique bfod keys for bsid and bsad
I_BFODA_KUNNR[] = I_BFOD_A[].
SORT I_BFODA_KUNNR BY KUNNR BUKRS GJAHR BELNR BUZEI.
DELETE ADJACENT DUPLICATES FROM I_BFODA_KUNNR COMPARING
KUNNR BUKRS GJAHR BELNR BUZEI.
Build BSID Internal table
SELECT MANDT BUKRS KUNNR UMSKS UMSKZ AUGDT AUGBL ZUONR GJAHR BELNR
BUZEI BUDAT HKONT BLDAT WAERS REBZG XBLNR SHKZG DMBTR
WRBTR ZFBDT ZBD1T ZBD2T ZBD3T
FROM BSID INTO CORRESPONDING FIELDS OF TABLE I_BSYD
FOR ALL ENTRIES IN I_BFODA_KUNNR
WHERE KUNNR EQ I_BFODA_KUNNR-KUNNR
AND BUKRS EQ I_BFODA_KUNNR-BUKRS
AND GJAHR EQ I_BFODA_KUNNR-GJAHR
AND BELNR EQ I_BFODA_KUNNR-BELNR
AND BUZEI EQ I_BFODA_KUNNR-BUZEI.
Build BSAD internal table
SELECT MANDT BUKRS KUNNR UMSKS UMSKZ AUGDT AUGBL ZUONR GJAHR BELNR
BUZEI HKONT BUDAT BLDAT WAERS REBZG XBLNR SHKZG DMBTR WRBTR ZFBDT
ZBD1T ZBD2T ZBD3T
FROM BSAD APPENDING CORRESPONDING FIELDS OF TABLE I_BSYD
FOR ALL ENTRIES IN I_BFODA_KUNNR
WHERE KUNNR EQ I_BFODA_KUNNR-KUNNR
AND BUKRS EQ I_BFODA_KUNNR-BUKRS
AND AUGDT GT P_BUDAT
AND GJAHR EQ I_BFODA_KUNNR-GJAHR
AND BELNR EQ I_BFODA_KUNNR-BELNR
AND BUZEI EQ I_BFODA_KUNNR-BUZEI.
IF NOT I_BSYD[] IS INITIAL.
Remove records based on selection criteria
DELETE I_BSYD WHERE
NOT BUDAT LE P_BUDAT OR
NOT HKONT IN S_HKONT.
ENDIF.
Acquire document headers
SELECT BUKRS BELNR GJAHR BKTXT XBLNR HWAER HWAE2 FROM BKPF
INTO TABLE I_BKPF
FOR ALL ENTRIES IN I_BSYD
WHERE BUKRS EQ I_BSYD-BUKRS
AND BELNR EQ I_BSYD-BELNR
AND GJAHR EQ I_BSYD-GJAHR.
Sort document lines
SORT I_BSYD BY KUNNR BUKRS GJAHR BELNR BUZEI ASCENDING.
SORT I_BKPF BY BUKRS BELNR GJAHR ASCENDING.
Create table of unique customers
SORT I_BFODA_KUNNR BY KUNNR.
DELETE ADJACENT DUPLICATES FROM I_BFODA_KUNNR COMPARING KUNNR.
Build customer table
SELECT KUNNR NAME1 FROM KNA1
INTO TABLE I_KNA1
FOR ALL ENTRIES IN I_BFODA_KUNNR
WHERE KUNNR EQ I_BFODA_KUNNR-KUNNR.
Free memory space
FREE I_BFODA_KUNNR.
ENDFORM. " F_SELECT_DATA
Form F_BUILD_I_CEPC_TABLE
build the i_cepc internal table that would populate the
valid profit centers to processed.
FORM F_BUILD_I_CEPC_TABLE.
PERFORM F_DIS_MSG USING 100 'Build the Profit Center Ref Table.'.
COMMIT WORK.
Acquire CEPC table
IF I_PRCTR[] IS INITIAL.
SORT S_PRCTR.
SELECT PRCTR KHINR
FROM CEPC
INTO TABLE I_CEPC
WHERE PRCTR IN S_PRCTR.
Sort table
SORT I_CEPC BY PRCTR KHINR.
Remove duplicate values
DELETE ADJACENT DUPLICATES FROM I_CEPC COMPARING PRCTR.
I_PRCTR[] = I_CEPC[].
Sort table
SORT I_PRCTR BY PRCTR.
ELSE.
Sort table
SORT I_PRCTR BY PRCTR.
Acquire CEPC table
SELECT PRCTR KHINR
FROM CEPC
INTO TABLE I_CEPC
FOR ALL ENTRIES IN I_PRCTR
WHERE PRCTR = I_PRCTR-PRCTR.
SOrt table
SORT I_CEPC BY PRCTR KHINR.
ENDIF.
IF I_CEPC[] IS INITIAL.
MESSAGE E000 WITH TEXT-006.
ENDIF.
ENDFORM. " F_BUILD_i_CEPC_TABLE
Form F_BUILD_I_REPORT
Build the A/R report internal table from bfod_a, bsid and bsad
It is necessary to go to BSAD/BSID to get the document currency
not present in bfod_a.
FORM F_BUILD_I_REPORT.
PERFORM F_DIS_MSG USING 100 'Build the report information.'.
COMMIT WORK.
Sort all internal tables, this is essential for later processing
SORT I_BFOD_A BY KUNNR BUKRS GJAHR BELNR BUZEI .
SORT I_BSYD BY KUNNR BUKRS GJAHR BELNR BUZEI.
SORT I_CEPC BY PRCTR KHINR.
LOOP AT I_BFOD_A.
New customer
AT NEW KUNNR.
READ TABLE I_KNA1 WITH KEY KUNNR = I_BFOD_A-KUNNR BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE I_KNA1-NAME1 TO I_REPORT-NAME1.
ENDIF.
ENDAT.
Acquire header fields
READ TABLE I_BKPF WITH KEY BUKRS = I_BFOD_A-BUKRS
BELNR = I_BFOD_A-BELNR
GJAHR = I_BFOD_A-GJAHR BINARY SEARCH.
IF SY-SUBRC NE 0.
CLEAR I_BKPF.
ENDIF.
Build base record
PERFORM F_MOVE_BASE_TO_REPORT.
Load profit center data
IF P_KHINR IS INITIAL.
IF V_PREV_PRCTR = I_BFOD_A-PRCTR.
I_REPORT-KHINR = I_CEPC-KHINR.
ELSE.
READ TABLE I_CEPC WITH KEY PRCTR = I_BFOD_A-PRCTR BINARY SEARCH.
IF SY-SUBRC = 0.
I_REPORT-KHINR = I_CEPC-KHINR.
ELSE.
CLEAR I_REPORT-KHINR.
ENDIF.
V_PREV_PRCTR = I_BFOD_A-PRCTR.
ENDIF.
ELSE.
I_REPORT-KHINR = P_KHINR.
ENDIF.
Reverse signs
IF I_REPORT-SHKZG = 'H'.
I_REPORT-DMBTR = I_REPORT-DMBTR * -1.
I_REPORT-DMBE2 = I_REPORT-DMBE2 * -1.
ENDIF.
Additional details
READ TABLE I_BSYD WITH KEY KUNNR = I_BFOD_A-KUNNR
BUKRS = I_BFOD_A-BUKRS
GJAHR = I_BFOD_A-GJAHR
BELNR = I_BFOD_A-BELNR
BUZEI = I_BFOD_A-BUZEI BINARY SEARCH.
IF SY-SUBRC = 0.
PERFORM F_FORMAT_I_REPORT_FR_BSYD.
APPEND I_REPORT.
ENDIF.
ENDLOOP.
ENDFORM. " F_BUILD_I_REPORT
Form F_FORMAT_I_REPORT_FR_BSYD
Retrieve all the information needed for reporting from BSID.
If a document has a referencing invoice (REBZG), the payment terms
and the baseline date to be used will come from the referencing
invoice.
FORM F_FORMAT_I_REPORT_FR_BSYD.
*=> get the document currency amount from bsid
I_REPORT-BLDAT = I_BSYD-BLDAT.
I_REPORT-WAERS = I_BSYD-WAERS.
PERFORM F_CONVERT_CURRENCY_FR_2_AMTS USING I_REPORT-HWAER I_BSYD-WAERS
I_BSYD-DMBTR I_BSYD-WRBTR
I_BFOD_A-DMBTR
CHANGING V_BFOD_TXNAMT.
I_REPORT-WRBTR = V_BFOD_TXNAMT.
IF I_BSYD-SHKZG = 'H'.
I_REPORT-WRBTR = I_REPORT-WRBTR * -1.
ENDIF.
V_ZBD1T = I_BSYD-ZBD1T.
V_ZFBDT = I_BSYD-ZFBDT.
*=> determine reference document (referencing invoice)
CLEAR I_REPORT-SORT.
CASE I_BSYD-REBZG.
WHEN ' '.
I_REPORT-SORT = I_BFOD_A-BELNR.
WHEN 'V'.
I_REPORT-SORT = I_BSYD-XBLNR.
WHEN OTHERS.
I_REPORT-SORT = I_BSYD-REBZG.
PERFORM F_GET_DATEPAYTERM_FR_ORIGDOC.
ENDCASE.
CLEAR I_FAEDE.
I_FAEDE-SHKZG = I_BSYD-SHKZG.
I_FAEDE-KOART = 'D'.
I_FAEDE-ZFBDT = I_BSYD-ZFBDT.
I_FAEDE-ZBD1T = I_BSYD-ZBD1T.
I_FAEDE-ZBD2T = I_BSYD-ZBD2T.
I_FAEDE-ZBD3T = I_BSYD-ZBD3T.
I_FAEDE-REBZG = I_BSYD-REBZG.
I_FAEDE-BLDAT = I_BSYD-BLDAT.
CALL FUNCTION 'DETERMINE_DUE_DATE'
EXPORTING
I_FAEDE = I_FAEDE
IMPORTING
E_FAEDE = I_FAEDE
EXCEPTIONS
ACCOUNT_TYPE_NOT_SUPPORTED = 1
OTHERS = 2.
V_DPAST = P_BUDAT - I_FAEDE-NETDT.
IF V_DPAST < 0.
I_REPORT-DPAST = 0.
ELSE.
MOVE V_DPAST TO I_REPORT-DPAST.
ENDIF.
I_REPORT-ZBD1T = V_ZBD1T.
I_REPORT-NETDT = I_FAEDE-NETDT.
Update totals
PERFORM F_BUILD_TOTALS.
ENDFORM. " F_FORMAT_I_REPORT_FR_BSYD
Form F_GET_DATEPAYTERM_FR_ORIGDOC
FORM F_GET_DATEPAYTERM_FR_ORIGDOC.
In order to go back to the original document's payment terms and
baseline date, we neeed to resort bsid/bsad to a different sort
order b-coz only these 3 fields logically matched the orig doc
SORT I_BSYD BY KUNNR BUKRS BELNR.
READ TABLE I_BSYD WITH KEY KUNNR = I_BFOD_A-KUNNR
BUKRS = I_BFOD_A-BUKRS
BELNR = I_REPORT-SORT BINARY SEARCH.
IF SY-SUBRC = 0.
V_ZBD1T = I_BSYD-ZBD1T. "payment term
V_ZFBDT = I_BSYD-ZFBDT. "baseline due date
ENDIF.
SORT I_BSYD BY KUNNR BUKRS GJAHR BELNR BUZEI.
ENDFORM. " F_GET_DATEPAYTERM_FR_ORIGDOC
Form F_WRITE_REPORT
Write A/R report summarized by profit center.
Report will be build by profit center and sum all customers
then will sum past do for profit center and catagorized
will also sum by project / wbs element.
FORM F_WRITE_REPORT.
SORT I_REPORT BY PRCTR KUNNR SORT BLDAT BELNR DPAST DESCENDING.
CALL SCREEN 9000.
ENDFORM. " F_WRITE_REPORT
Form F_POPULATE_PRCTR_FROM_PRCTRGRP
FORM F_POPULATE_PRCTR_FROM_PRCTRGRP.
LOOP AT I_SET_VALUES.
IF I_SET_VALUES-TO = I_SET_VALUES-FROM.
I_PRCTR-PRCTR = I_SET_VALUES-TO.
COLLECT I_PRCTR.
S_PRCTR-SIGN = 'I'.
S_PRCTR-OPTION = 'EQ'.
S_PRCTR-LOW = I_SET_VALUES-TO.
COLLECT S_PRCTR.
ELSE.
MESSAGE E000 WITH 'System Error, contact programmer'
I_SET_VALUES-TO I_SET_VALUES-FROM.
ENDIF.
ENDLOOP.
ENDFORM. " F_POPULATE_PRCTR_FROM_PRCTRGRP
Form F_CONVERT_CURRENCY_FR_2_AMTS
This function module will ensure proper handling of decimals
and conversion of currency. This will give you the historical
exchange rate used.
BFOD_A does not have the trans curr amt so we will get it
using: ( bsid trans curr amt / bsid loc curr amt ) *
bfod_a loc currency amt
FORM F_CONVERT_CURRENCY_FR_2_AMTS USING V_FRCURR V_TOCURR
V_OFRAMT V_OTOAMT V_NFRAMT
CHANGING V_NTOAMT.
CALL FUNCTION 'Z_CONVERT_CURRENCY_FROM_2_AMTS'
EXPORTING
FROM_CURRENCY = V_FRCURR
TO_CURRENCY = V_TOCURR
OLD_FROM_AMOUNT = V_OFRAMT
OLD_TO_AMOUNT = V_OTOAMT
NEW_FROM_AMOUNT = V_NFRAMT
IMPORTING
NEW_TO_AMOUNT = V_NTOAMT
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH TEXT-005.
ENDIF.
ENDFORM. " F_CONVERT_CURRENCY_FR_2_AMTS
Form F_RETRIEVE_BFODA_BY_COMPANY
FORM F_RETRIEVE_BFODA_BY_COMPANY.
Acquire BFOD_A table
SELECT PRCTR KUNNR BUKRS GJAHR BELNR BUZEI AUGDT HKONT BUDAT
SHKZG DMBTR DMBE2 FROM BFOD_A
INTO TABLE I_BFOD_A
WHERE BUKRS IN S_BUKRS.
IF I_BFOD_A[] IS INITIAL.
EXIT.
ELSE.
Remove records based on selection criteria
DELETE I_BFOD_A WHERE NOT KUNNR IN S_KUNNR OR
NOT BUDAT LE P_BUDAT OR
NOT HKONT IN S_HKONT OR
NOT BELNR IN S_BELNR OR
( NOT AUGDT IS INITIAL AND
NOT AUGDT > P_BUDAT ).
ENDIF.
Build selection option
LOOP AT I_BFOD_A.
I_PRCTR-PRCTR = I_BFOD_A-PRCTR.
COLLECT I_PRCTR.
S_PRCTR-SIGN = 'I'.
S_PRCTR-OPTION = 'EQ'.
S_PRCTR-LOW = I_BFOD_A-PRCTR.
COLLECT S_PRCTR.
ENDLOOP.
SORT S_PRCTR.
SORT I_PRCTR BY PRCTR.
PERFORM F_BUILD_I_CEPC_TABLE.
ENDFORM. " F_RETRIEVE_BFODA_BY_COMPANY
Form F_RETRIEVE_BFODA_BY_PRCTR
FORM F_RETRIEVE_BFODA_BY_PRCTR.
Acquire BFOD_A table
SELECT PRCTR KUNNR BUKRS GJAHR BELNR BUZEI AUGDT HKONT BUDAT
SHKZG DMBTR DMBE2 FROM BFOD_A
INTO TABLE I_BFOD_A
FOR ALL ENTRIES IN I_PRCTR
WHERE PRCTR = I_PRCTR-PRCTR AND
KUNNR IN S_KUNNR AND
BUKRS IN S_BUKRS.
IF I_BFOD_A[] IS INITIAL.
EXIT.
ELSE.
Remove records based on selection criteria
DELETE I_BFOD_A WHERE NOT KUNNR IN S_KUNNR OR
NOT BUKRS IN S_BUKRS OR
NOT BUDAT LE P_BUDAT OR
NOT HKONT IN S_HKONT OR
NOT BELNR IN S_BELNR OR
( NOT AUGDT IS INITIAL AND
NOT AUGDT > P_BUDAT ).
ENDIF.
ENDFORM. " F_RETRIEVE_BFODA_BY_PRCTR
Form F_MOVE_BASE_TO_REPORT
FORM F_MOVE_BASE_TO_REPORT.
I_REPORT-PRCTR = I_BFOD_A-PRCTR.
I_REPORT-KUNNR = I_BFOD_A-KUNNR.
I_REPORT-BELNR = I_BFOD_A-BELNR.
I_REPORT-BUKRS = I_BFOD_A-BUKRS.
I_REPORT-HKONT = I_BFOD_A-HKONT.
I_REPORT-AUGDT = I_BFOD_A-AUGDT.
I_REPORT-BUDAT = I_BFOD_A-BUDAT.
I_REPORT-GJAHR = I_BFOD_A-GJAHR.
I_REPORT-BUZEI = I_BFOD_A-BUZEI.
I_REPORT-SHKZG = I_BFOD_A-SHKZG.
I_REPORT-DMBTR = I_BFOD_A-DMBTR.
I_REPORT-DMBE2 = I_BFOD_A-DMBE2.
I_REPORT-HWAER = I_BKPF-HWAER.
I_REPORT-HWAE2 = I_BKPF-HWAE2.
I_REPORT-BKTXT = I_BKPF-BKTXT.
I_REPORT-XBLNR = I_BKPF-XBLNR.
ENDFORM. " F_MOVE_BASE_TO_REPORT
Module STATUS_9000 OUTPUT
text
MODULE STATUS_9000 OUTPUT.
SET PF-STATUS '9000'.
SET TITLEBAR '900'.
Launch standard ALV grid
PERFORM F_CREATE_ALV_GRID_CONTROL.
PERFORM F_LOAD_COLUMN_HEADINGS.
ENDMODULE. " STATUS_9000 OUTPUT
Module USER_COMMAND_9000 INPUT
text
MODULE USER_COMMAND_9000 INPUT.
CASE SY-UCOMM.
WHEN 'EXIT' OR 'CANC' OR 'BACK'.
CALL METHOD REF_CUSTOM->FREE.
SET SCREEN 0.
LEAVE SCREEN.
Begin of changes for Release 2 by HBE7890 - DEVK909110
WHEN 'PRIN'.
PERFORM PRINT_AGING_TOTALS.
End of changes.
ENDCASE.
ENDMODULE. " USER_COMMAND_9000 INPUT
Form F_CREATE_ALV_GRID_CONTROL
text
FORM F_CREATE_ALV_GRID_CONTROL.
Set field catalog for ALV
PERFORM F_SET_FIELDCAT.
IF REF_CUSTOM IS INITIAL.
Create ALV container
CREATE OBJECT REF_CUSTOM
EXPORTING
CONTAINER_NAME = 'ZRPT_CONTAINER'.
Create ALV grid control
CREATE OBJECT REF_ALV_ZRPT
EXPORTING
I_PARENT = REF_CUSTOM.
Adjust look and feel
PERFORM F_CHANGE_SETTINGS.
Call the ALV Build
CALL METHOD REF_ALV_ZRPT->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = V_LAYOUT
IS_VARIANT = V_VARIANT
I_SAVE = V_SAVE
I_DEFAULT = V_DEFAULT
CHANGING
IT_SORT = I_SORT
IT_OUTTAB = I_REPORT[]
IT_FIELDCATALOG = I_ALV_FIELDCAT[].
Create print top of page
CREATE OBJECT REF_EVENT_RECEIVER.
SET HANDLER REF_EVENT_RECEIVER->MTH_PRINT_TOP_OF_PAGE
FOR REF_ALV_ZRPT.
Create print top of page
CREATE OBJECT REF_EVENT_RECEIVER.
SET HANDLER REF_EVENT_RECEIVER->MTH_PRINT_TOP_OF_LIST
FOR REF_ALV_ZRPT.
ENDIF.
ENDFORM. " F_CREATE_ALV_GRID_CONTROL
Form F_CHANGE_SETTINGS
text
FORM F_CHANGE_SETTINGS .
Set layout parameters
V_LAYOUT-GRID_TITLE = 'A/R by Profit Center'.
V_LAYOUT-SEL_MODE = 'A'.
V_LAYOUT-INFO_FNAME = 'LINECOLOR'.
V_LAYOUT-CWIDTH_OPT = 'X'.
V_LAYOUT-NO_MERGING = 'X'.
V_LAYOUT-NUMC_TOTAL = 'X'.
V_DEFAULT = 'X'.
V_SAVE = 'A'.
Set display variant
V_VARIANT-REPORT = SY-REPID.
IF P_DSVAR NE ''.
V_VARIANT-VARIANT = P_DSVAR.
ENDIF.
ENDFORM. " F_CHANGE_SETTINGS
Form F_SET_FIELDCAT
text
FORM F_SET_FIELDCAT .
Set field catalog for ALV
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = 'ZFR0ARPR_S1' "DEVK909110
I_STRUCTURE_NAME = 'ZPSS_ARBYPC' "DEVK909110
CHANGING
CT_FIELDCAT = I_ALV_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
Override any attributes
LOOP AT I_ALV_FIELDCAT INTO V_ALV_FIELDCAT.
IF V_ALV_FIELDCAT-FIELDNAME EQ 'NAME1'.
MOVE 'Customer Name' TO: V_ALV_FIELDCAT-REPTEXT,
V_ALV_FIELDCAT-SCRTEXT_L,
V_ALV_FIELDCAT-SCRTEXT_M,
V_ALV_FIELDCAT-SCRTEXT_S.
ENDIF.
IF V_ALV_FIELDCAT-FIELDNAME EQ 'SORT'.
MOVE 'Documentation' TO: V_ALV_FIELDCAT-REPTEXT,
V_ALV_FIELDCAT-SCRTEXT_L,
V_ALV_FIELDCAT-SCRTEXT_M.
MOVE 'DocRef' TO V_ALV_FIELDCAT-SCRTEXT_S.
ENDIF.
MODIFY I_ALV_FIELDCAT FROM V_ALV_FIELDCAT.
ENDLOOP.
ENDFORM. " F_SET_FIELDCAT
Form F_BUILD_TOTALS
text
FORM F_BUILD_TOTALS .
DATA: V_DAYS TYPE I,
V_INDEX(2) TYPE N.
CLEAR I_TOTAL.
Build total line
MOVE I_REPORT-HWAER TO I_TOTAL-WAERS.
MOVE I_REPORT-DMBTR TO I_TOTAL-TOTAL.
DO 5 TIMES.
V_DAYS = ( SY-INDEX - 1 ) * P_AGEDY.
V_INDEX = SY-INDEX.
IF I_REPORT-DPAST LE V_DAYS.
CONCATENATE 'I_TOTAL-DAYS' V_INDEX INTO V_FIELD-NAME.
ASSIGN (V_FIELD-NAME) TO <COLUMN>.
<COLUMN> = I_REPORT-DMBTR.
EXIT.
ELSEIF SY-INDEX EQ 5.
CONCATENATE 'I_TOTAL-DAYS' V_INDEX INTO V_FIELD-NAME.
ASSIGN (V_FIELD-NAME) TO <COLUMN>.
<COLUMN> = I_REPORT-DMBTR.
EXIT.
ENDIF.
ENDDO.
COLLECT I_TOTAL.
ENDFORM. " F_BUILD_TOTALS
CO-PA has all the information you need...
Profitability Analysis is that part of CO where operations will access its performance factors and profitability statements contain margins, standard cost variance, sales information, allocations and other related profit or loss data. This module helps analyze profitability of customers, markets and products at various levels of contribution margins. Profitability is measured down to the SD billing document line and is adjusted periodically against standard costs and other costs.
It has 2 methods of approach :
Costing based Profitability Analysis - This is primarily designed to let you analyze profits quickly for the purpose of sales management.
Account based Profitabilty Analysis - This type of Profitability Analysis enables you to reconcile cost and financial accounting at any time using accounts.
Guess, the second approach is what you are looking for... -
Field Profit Center is not populated while posting through T-Code F-02
Dear Sir / Madam,
While posting through T-code F-02 the field Profit center is in hidden mode
as a result I am getting the given below error.
"GLT2201 - Balancing field profit center in line item 001 not filled"
Please guide me as to how do I change Field status varient so that the field Profit center gets activated in optional mode in F-02.
I tried searching the same but could not find the solution.
Regards
Chirag ShahDear expert
Check following steps...
1. Use transaction ACSET and enter cost center as your account assignment for type 01 APC posting..
2. Make sure Cost Center exists in the Asset Master..
3. Make sure profit center is entered into Cost Center master.
4.Check the steps where you assign the GL accounts to the splitting rules.
suggest you to go through the below mentioned links
Balancing Field "Profit Center" in line item 001 not filled
Balancing field "profit center" in line item 001 not filled
GLT2201 - Balancing field profit center in line item 001 not filled
Balancing field "Profit Center" in line item 001 not filled
F-51: Balancing field "Profit Center" in line item 001 not filled
Balancinf field profit center in line item 001 not filled
Regards,
Ajeesh.s -
RAPERB2000 problem / Missing profit center
Hi
We have the new GL with balancing field profit center active.
We posted an asset disposal w/o revenue. RAPERB2000 cannot post the difference between leading and non-leading ledger: balancing field profit center is not filled.
In a different company code this works fine, the profit center is derived from the cost center of the asset. But why not in this case?
The field status and FAGL3KEH settings are the same...
Any idea?
Thanks
ExberlinerIssue found: ACSET is missing for delta depreciation area...
Maybe you are looking for
-
Single ERS Invoice for multiple POs with different GS and same IP
Dear All, I have a Requirement as per the below scenario: We need to have single invoice created using ERS (MRRL) functionality in the below scenario: Two POs created with different Partner function GS (goods supplier) and same IP (Invoice party part
-
How can I add an audio file to each slide when I export to HTML Keynote 6.2
How can I add an audio file to each slide when I export to HTML Keynote 6.2 I am trying to create an audio slide show instead of a movie
-
i have my mac book frozen when i put os disc in and pressed restart it went to restart apple logo cam on screen and now it has stayed like that for 24 hours i have not been able to eject disc or response fromkeypad please help
-
Is there a score guide for sports programs like on direct tv.
-
Hello, I have a problem with the battery from my U350, I bought no more than 6 months ago, so i don't think it's matter of time. Battery is plugged, but not charging (message: connected and not load.) Do not know if the problem is that the battery i