Deactivating ABAP UNIT in Production system
Hi All,
I have gone through the documention of ABAP UNIT for unit testing. In the documents it is mentioned that the Test classes created for Unit Testing are Local Classes and does not make any negative impact on the Production environment Because these classes are Inactive in Production system.
Can anyone please reply to the follwoing:
1) Are the Test classes Inactive by default in production system?
2) If No then what is the procedure for Deactivating Test classes in the production environment?
3) What is the transaction code for checking the status (active/inactive) these classes?
4) Is the menu path Programs->Test-> ABAP_Unit is inactive in production?
Thanks and Regards,
Ashvender
1) Unit Test Framework will look for the Type of Client. If your client is Production client, Unit test framework will automatically make them inactive.
The check happens to allow to run Unit test in FM SABP_AU_TEST_PROGRAM_FROM_EU.
3) Unit Test classes will be complied in the production system but you will not be able to exectue them.
When we create Unit test in development, Table TAUNIT_PROG_INFO is being updated (HAS_TESTS = 'X'). But when we transport our objects along with the ABAP Unit in Production client, this table is not being updated.
4) You can try running the ABAP unit by Program > Test > Unit Test in Production, but will give you message "Unit tests are not possible in production clients".
Regards,
Naimesh Patel
Similar Messages
-
How to make inactive ABAP Program in production system
Dear Expert,
I have a lot abap program in production system which are not used anymore and my company plan to upgarde our SAP system, therefore to reduce the effort for the SAP upgarde I will deactivate the unused ABAP program.
My question how to change the active abap to inactive in production system ?
Thank you in advance.
Best regrads,
TjandiagungProgram details are stored in the table REPOSRC.
Primaray keys are PROGNAME and R3STATE.
Suppose if the program zxy is in active state, then enry will be
ZXY A
Suppose if we made some changes to it and saved, so the program is in inactive state. so one more entry will be there in the table
ZXY A
ZXY I
So if you add like this for the program which you want in the table REPOSRC, then that programs will be in inactive state.
Regards,
Nikhil -
Too many abap dumps in production system
gurus ,
i have a doubt . there was around 56 abap dumps by a single user .
i just want to know whether having these much of abap dumps in the production will hit performance system in a way or other ?
if so i can make alert them on the criticality of running a report in production ."the problem is , most of the dumps are SYNTAX_ERROR which are generated by the customized reports created by the users"
Good! I much prefer them to the "there is something wrong with your system" type dumps.
"these people make a direct attempt in production directly resulting in lot of dumps .
we have a quality client with the latest production datas , but they dont do their first .
i am not sure whether this practice will really hit any performance issue .
if so then i can insist them the importance of being alert before making an attempt in production"
Bad, bad, bad practise.
As you have mentioned a QA system, I'm assuming that you have at least a 3 tier landscape ... tell the developers to use it!
p.s - the problem isn't so much that the users are running the reports directly in Prod, it's that the reports haven't been tested properly before they reach the Prod system ! -
Product system not in LMDB only in SMSY
Hi Solman experts,
I have a question regarding Solman products in LMDB and SMSY.
After updating Solman 7.1 from SP08 to SP10, in Managed Systems Configuration, Assign Product step I get the following errors:
(I am using ABC as SID)
ABC00001~JAVA: part of product system ABC, which is not in LMDB but only in SMSY
ABC~ABAP: part of product system ABC, which is not in LMDB but only in SMSY
In SMSY i see that under ABC there is both ABAP and JAVA whereas under ABC00001 there is only Java (in Products system).
The Diagnosis of Solman for this error is:
Diagnosis
The technical system ABC00001~JAVA is assigned to product system ABC, which was created in transaction SMSY and has not yet been migrated into the Landscape Management Database (LMDB).
The technical system ABC~ABAP is assigned to product system ABC, which was created in transaction SMSY and has not yet been migrated into the Landscape Management Database (LMDB).
System Response
Procedure
If the product system information in transaction SMSY is still required for your system landscape maintenance, migrate it to LMDB. You can do this in the SAP Solution Manager: Configuration work center under System Preparation -> Prepare Landscape Description -> Migrate SMSY Data into LMDB -> Migrate Product Systems. (For more information, refer to the help text in the UI.)
If the product system information in transaction SMSY is no longer required for your system landscape maintenance, delete the product system information in SMSY.
Could anybody who had the same experience share their opinion on this case. This LMDB<>SMSY change is very confusing at this step. Would be more meaningful to execute the optional migrate from SMSY step or delete the product. the second seems a little bit meaningless in this case.
Thanks in advance.
RegardsHi Shkëlzen,
then that could be the reason why you have some system(s) in SMSY and LMDB.
As far as I understood you need to migrate all your Landscape from SMSY to LMDB by using the step "2.4 migrate smsy to lmdb" as mentioned by Jansi Rani Murugesan at http://scn.sap.com/message/15079962#15079962
It might happen that this transformation creates double system entries in LMDB by adding the 0000x to the SID. But this is only an visual "defect".
Once you have done the conversion from SMSY to LMDB you should get this issue resolved.
The conversion report took me more than 48 hours to complete. This is totally normal. You can execute some database statistics updates and/or check/optimize the profile parameters and hope the conversion runs faster.
Hope this helps,
Niklas -
Transport of ABAP Unit Test Classes between systems.
Hi guys
I have a bit of a dilemma on hands here pertaining to the transport of ABAP Unit test classes. Generally when you create a transport containing classes the transport manager will automatically include all "programs" related to the class like the local type definitions, local implementations and with ABAP Unit the local test classes.
<b>The question that I have is how would one go about excluding the ABAP Unit test classes in transports to production systems and pre-WAS 6.40 systems that do not support ABAP Unit? Does the transport system automatically manage this for you?</b> Any help ideas regarding this would be greatly appreciated.
Kind regards
Ettienne HugoHello Ettienne
I have a very similar problem that I have to maintain objects for release 6.20 and 6.40. Since I appreciate ABAP Unit Tests as being very helpful I do not want to miss them even in such a situation.
My approach is as following:
- If possible, I try to separate the local classes from the tested object, for example:
- Report or function group
- contains an include like <z_include_ft01>
- Within <i><z_include_ft01></i> I have a single stament <i><z_include_au01></i>
The actual ABAP Unit Tests are coded in <z_include_au01>. Now if I need to ship the development to a release < 6.40 the only thing I need to do is to comment the single INCLUDE statement in <z_include_ft01>. This manual step cannot be ommitted (however, it would be simple task to define an eCATT doing this). In addition, include <z_include_au01> should not be in the transport request for the development (if it happened the import error would not affect the function of the development because it is no longer linked together).
Advantage of this approach:
- I clearly see that my development contains ABAP Unit Tests (use naming conventions for the includes) and
- I can ship - with little effort - the development to SAP releases not supporting ABAP Unit Testing yet
Regards
Uwe -
Problem of unit of measurment in production system
Hi Friends,
I'm facing a peculiar problem of unit of measurement like error in all quantity and curreny fields in report output after transporting a query from quality system to production system but this query is generated from multiprovdier. what might be the problem.
Regards,
Srinivas.Hi Dave,
Thanks for ur reply. but to trace in monitor it is not showing any error message.
My Mail ID is [email protected] Please the send the document
Regards,
bharat -
Use of proportion units or product units was deactivated - CT04
While creating characteristic for PR & PO release strategy, I am able to save it, But while retrieving i am getting the meesage that "CHARACTERISTICS" not saved and getting message "Use of proportion units or product units was deactivatedu201D while drilling down the message.
How to solve this?Hi,
Please refer below links..
Message LB163 when creating characteristic for release strategy
Kuber -
Create a Support Message in Production system showing up in Solution Manage
Has anyone setup the link between creating a support message (under help) in a production system (like ECC) and SAP's Solution Manager.
I understand that it uses BADI SBCOS001 with the interface method PREPARE_FEEDBACK_BO, but when I try to run it, it tells me that Customizing for feedback functionality missing. What functionality is missing? And how to I correct this? And how do I ensure it shows in SAP Solution Manager under a solution or project?
Thanks
PaulHi Paul
The only way is to use the IMG. I have just completed this via the IMG info. BUT, it is not that simple.
Make sure your RFC's are trusted and that you have SAP ALL during config.
I hope this will help:
Setup Service Desk
Steps to follow while configuring support desk.
1) Implement the note 903587 .
2) Create all the relevant RFC objects in the satellite system and add the appropriate logical components using transaction SMSY.
3) Check all the objects in the table BCOS_CUST using transaction SM30.
Appl : OSS_MSG
+ :W
DEST :BACK RFC NAME (for solution manager system keep this field as 'NONE')
+ :CUST 620
+ :1.0.
*4) Check whether the BC sets are activated or not using the transaction SCPR20.If the BC sets are not activated then implement the note 898614.The steps to activate the BC sets are described below
4.1) Activate SOLMAN40_SDESK_BASICFUNC_000 BC Set.
4.2) Activate this in expert mode with option u201COverwrite everythingu201D.
4.3) Activation of the following components has to be done by replicating the previous steps
3.1) SOLMAN40_SDESK_TPI_ACT_AST_001
3.2) SOLMAN40_SDESK_ACTIONLOG_001
3.3) SOLMAN40_SDESK_ACT_ADVCLOSE_001
3.4) SOLMAN40_SDESK_TEXTTYPES_001
*Depends upon the number of inactive BC set objects that we have after the upgrade.
4.4) if the actions mentioned in 4.3 are not listed while executing the transaction SCPR20, then implement the note 898614.In the source client 000 of the solution manager system create a transport request using transaction SE09, unpack the file 'PIECELIST_SERVICE_DESK_INIT.ZIP' from the attachment of the note. Copy the contents of the file 'PIECELIST_SERVICE_DESK_INITIAL.TXT' to the transport request. And activate the actions. Use transaction SCC1 to import the transport request to the solution manager client. If any short dump occurs during the activation, implement the note 939116.
5) Check whether the number range is set correctly. If not set the number ranges of basic notification (ABA) and the support desk message (Service transaction SLFN).To be able to use the same number ranges for both message types, the internal number range for basic notification (ABA) must correspond to the external number range for the support desk message.
Number ranges for ABA notifications
5.1) create an internal and external number range using transaction DNO_NOTIF.
5.2) assign number range intervals to groups internal and external.
5.3) SLF1 is the internal number range group
5.4) SLF2 and SLF3 is the external number range interval
5.5) Use transaction DNO_CUST01 to assign message categories to the number range.
5.51) Go to transaction DNO_CUST01
5.52) From the GOTO menu select the menu item DETAILS
5.53) Now you can assign the number range of basis notification (ABA) into the notification type.
The number range for ABA notification is 12 characters in length and to make it compatible with the CRM service transaction insert 2 ZEROES at the beginning.
Number ranges for Support Desk notification
5.54) Use transaction CRMC_NR_RA_SERVICE, and define the internal and external number ranges. Intervals must correspond to the intervals of the basic notifications (ABA notification).
5.6) Then assign both the external and internal numbering
5.61) Go to SPRO and then to SAP Solution Manager
5.62) Then select General Settings and then select Transaction types
5.63) Select the transaction type SLFN and then select the menu item DETAILS from the GOTO menu.
5.64) In the Transaction Numbering block, assign the internal and external number range. The Number Range object should be CRM_SERVIC.
5.7) To view the priorities use transaction DNO_CUST01 and select the notification type as SLF1 and then select priorities from the left pane of the screen. The priorities of the first four cannot be deleted, but new priorities can be added.
6) Check the Action profiles for ABA Notifications (Action profiles are used for synchronization of ABA notification with the CRM Service transaction).
6.1) To check the action profiles use the transaction SPPFCADM and select the application type DNO_NOTIF then select u2018DEFINE ACTION PROFILE AND ACTIONSu2019.
6.2) Select the item u2018SLFN0001_STANDARD_DNOu2019 and then from the menu GOTO, select the menu item DETAILS.
7) The Action profile u2018SLFN0001_STANDARD_DNOu2019 has to be assigned to the message category SLF1 (ABA notifications) using the transaction DNO_CUST01.
8) The action profile for the support desk message can be set to u2018SLFN0001_ADVANCEDu2019.
8.1) From SPRO select SAP Solution Manager then Scenario Specific Settings.
8.2) Select the item Service Desk and then to general settings.
8.3) Execute the category u2018Define Transaction Typesu2019.
8.4) Select the transaction type as SLFN
8.5) From the GOTO menu select the menu item u2018DETAILSu2019 and assign the action profile as SLFN0001_ADVANCED .
9) Activate the partner/ Organization
9.1) Go to CRM->MASTER DATA->BUSINESS PARTNER->INTEGRATION BUSINESS PARTNER ORGANIZATION MANAGEMENT->SET UP INTEGRATION WITH ORGANIZATIONAL MANAGEMENT.
9.2)Find the entries starting with HRALX
HRALX-HRAC WITH VALUE 'X'.
HRALX-OBPON WITH VALUE 'ON'.
HRALX-PBPON u2018ONu2019.
HRALX-MSGRE u2013 u20180u2019.
9.3) If entries are not found create it.
10) Generate Business partner screens
10.1) Go to transaction BUSP.
10.2) Execute the report with the following parameters
CLIENT - Client in which business partners should be created (solution manager client)
APPLICATION OBJECT-
SCREEN - *
Generate all/ selected screens - All screens.
delete sub screen containers -
11) implement SAP note 450640.
11.1) Go to transaction SA38 and select the report CRM_MKTBP_ZCACL_UPDATE_30.
11.2) Execute it with test mode box unchecked.
If a new relationship is to be created then steps 12 and 13 has to be followed
12) To create a relationship category
12.1) Go to transaction BUBA
12.2) Select the entry CRMH00: Undefined relationship
12.3) click on copy
12.4) Rename CRMH00 to ZCRMH00.
12.5) CREATE A RELATIONSHIP CATEGORY.
IN GENERAL DATA FILL LIKE ' FROM BP1 : HAS THE ACTIVITY GROUP '.
' FROM BP2 : IS A PART OF ATTUNE
13) Add the relationship category to the support team partner function
13.1)Use SPRO
IMG GUIDE->SAP SOLUTION MANAGER->SCENARIO SPECIFIC SETTINGS->
-> SERVICE DESK->PARTNER DETERMINATION PROCEDURE->DEFINE PARTNER FUNCTION.
13.2) FIND THE PARTNER FUNCTION SLFN0003 (SUPPORT TEAM).
13.3) In the field relation ship category, Select the newly created relationship category and save.
14) Steps 12 and 13 should be repeated for various business partner types like sold-to-party, message processors if new relationship is to be created for the respective business partner types.
15) Create a new access sequence for the support team determination
15.1) Go to the following IMG Path: SAP Solution Manager Implementation Guide ->
SAP Solution Manager -> Configuration ->
-> Scenario Specific Settings ->Service Desk -> Partner Determination Procedure ->
->Define Access Sequence
15.2) Click on New Entries
15.3) Define a new access sequence with sequence name as u2018Z001u2019 and description u2018NEW BP RELATIONSHIP ACTIVITY GROUPu2019
15.4) Create an new Individual Access with the following value:
u2022 Batch Seq: 10
u2022 Dialog Seq : 10
u2022 Source : Business Partner Relationship.
u2022 Detail on the source:
u2022 Partner Function : Reported By (CRM)
u2022 Mapping/restrictions
u2022 Flag Mapping/definition for partner being Searched
u2022 Partner Function in Source: Support Team (CRM).
Save it.
This Access Sequence will give us the Partner which has the relationship assigned
to the Support Team in the Reported By partner data.
16) Adapt the partner determination schema/Function
16.1) Go to the following IMG Path: SAP Solution Manager Implementation Guide ->
SAP Solution Manager -> Scenario Specific Settings ->Service Desk ->
-> Partner Determination Procedure -> Define Partner Determination Procedure.
16.2) The two options to adapt partner determination schema are
16.21) Adapt the standard Procedure (SLFN0001) or to create a new one by copying the standard one.
16.22) select the line starting with SLFN0001 or the newly created procedure.
16.23) Double Click on Partner Function in Procedure.
16.24) Select the Partner Function "Support Team", and click Details.
16.25) in the detail view only change the Partner Determination/access Sequence to
the one we've just created. Save your entry.
17) Create a root organizational model.
17.1) Go to the following IMG Path: SAP Solution Manager Implementation Guide -> SAP Solution Manager -> Configuration-> Scenario Specific Settings ->Service Desk -> Organizational Model ->Create a Root Unit for Your Organizational Structure.
17.2) creating an organizational unit by entering the data in the BASIC DATA tab.
17.3) enter the organizational unit, the description and save it.
18) Create the support team organization
18.1) go to the following IMG Path: SAP Solution Manager Implementation Guide -> SAP Solution Manager -> Scenario Specific Settings ->Service Desk -> Create Organizational Objects in the Organizational Structure. Or use transaction (PPOMA_CRM).
19) Create the business Partners.
19. 1) Key users- End user (Business Partner General) ,Address should be specified.
19.2) go to the transaction BP.
19.3) create a new Person, Select the role: Business Partner (Gen).
For Identification of the key user
19.31) click on the identification tab
19.32) enter a line in the identification number formatted as follows
IDTYPE : CRM001.
Identification number : <SID><INSTALL NUMBERS><CLIENT><USERNAME>
eg: USER NAME : USER1.
CLIENT : 100.
SID : ER1.
INSTALL NUMBER : 123456789.
IDENTIFICATION NUMBER : ER1 123456789 100 USER1.
20) Message Processors- Support Team members .
20.1) they should be created first as the users in the corresponding client of the solution manager.
20.2) As business partners they will have the role 'EMPLOYEE'.
20.3) Go to transaction BP .
20.4) Create New Person with the role employee.
20.5) In the Identification tab you should enter the user name in the employee data/User Name.
eg: username: proc1
enter proc1 in the field User name.
21) Organizational Business Partner- Organizational BPS have the same country in there main address tab. They should be created through the organizational model. Business partner corresponding to the root organization have the role 'SOLD TO PARTY'.
22) Assign the business partners (Message Processors) to the previously created support team.
22.1) Go to transaction PPOMA_CRM.
22.2) Select the support team 1.
22.3) Click on create
22.4) select position
22.5) call it 'MPROC_T1/Message Processors for team 1
22.6) Replicate it for the other support teams.
22.7) Select the position MPROC_T1/Message Processors for team1 and click assign,
choose owner/Business Partner find and select the business partner
22.8) Validate and Save it.
22.9) If the assignment of business partner is not possible then implement the note 1008656
Or 997009
23) Create the iBase component
23.1) IMG Path: SAP Solution Manager Implementation Guide -> SAP Solution Manager -> Basic Settings -> Standard Configuration of Basic Settings -> Solution Manager -> iBase -> Initially Create and Assign the Component Systems as iBase Components.
23.2) or use the transaction IB51 to create the installed base.
23.3) it is also possible to create the SOLUTION_MANAGER, select the solution and go to menu Edit -> Initial Data Transfer for iBase.
24)Assign Business Partners to iBase Components
IMG Path: SAP Solution Manager Implementation Guide -> SAP Solution Manager -> Basic Settings
-> SAP Solution Manager System ->ServiceDesk-> iBase -> Assign Business Partners to iBase Components.
*--optional--
If you want to be able to assign the System Administrator: Go to the IMG: SAP Solution Manager Implementation Guide -> Customer Relationship Management -> Basic Function -> Partner Processing -> Define Partner Determination Procedure.
Select the entry "00000032 Installed Base/IBase" and double click on Partner Functions in Procedure.
Then copy the Entry "Contact Person (CRM)" to a new entry with the partner Function "System Administrator (CRM)" , save it.
Go back to transaction IB52, select a component, and Goto -> Partner, you should be able
now to assign the partner Function "System Administrator".
25) Assign the SAP Standard Role to the user. Message Creator should have the role : SAP_SUPPDESK_PROCESS.
26)Define the transaction variant for the message processors
Go to the following IMG Path: SAP Solution Manager Implementation Guide -> SAP Solution Manager -> Configuration -> Scenario Specific Settings ->Service Desk -> General Settings -> Specify User Selection Variant.
Here we will create variants for the central message processing transaction CRM_DNO_MONITOR.so that the user will have direct access to there dedicated message.
27) Go to transaction PFCG
27.1) Enter the role name as Z_MSG_PROCESSORS and choose single role.
27.2) Give a description Message Processor role and save it.
27.3) Go to the menu tab and choose add report
27.4) select the report type : ABAP Report
27.5) And in the report enter the report name as 'CRM_DNO_SERVICE_MONITOR'.
27.6) Enter the previously created variant.
27.7) flag the skip initial screen box.
27.8) flag the SAPGUI for windows.
27.9) Create a new transaction with tcode starting with Y or Z.
27.10)Display this transaction and check the values at the bottom of the screen
in the subscreen Default Values, you should have the following parameters:
u2022 D_SREPOVARI-REPORT = CRM_DNO_SERVICE_MONITOR
u2022 D_SREPOVARI-VARIANT = MY_TEAM_MSG
u2022 D_SREPOVARI-NOSELSCRN = X
And also all the user should have the correct role. -
ABAP unit: test classes part of prod. code
Hi all,
I've read <a href="https://weblogs.sdn.sap.com/pub/u/266">Thomas Weiss</a>'s weblog: <a href="/people/thomas.weiss/blog/2004/12/17/a-spotlight-on-abap-unit-part-1 Spotlight on ABAP Unit Part 1</a>.
I posted a question there, but apparently Thomas can't answer at the moment, and since I'm impatient for getting someone's opinion, I reckon we can discuss that topic here :^)
As explained in the <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/c1be1003-0701-0010-3795-f87160de6483">NetWeaver Developers Guide Using ABAP</a>, the test classes are part of the program under test (PUT):
<i>In ABAP Unit, test classes are part of the production code of the TU. This avoids problems arising from the test code being separate from the production code:
- Programs and tests must be kept synchronized.
- You have to ensure that the test and program code are transported together.
- External test code only enables black box tests with an outside perspective of the tested program.
Since the test code is part of the production code, it is easy to keep the unit tests and the
production code up to date if the latter is changed.
Although the test code and the production code are transported through the system landscape, ABAP unit tests do not increase the load on the production system. By default, the test code is not compiled in the production system. Therefore, the test code can never be executed in the production system.</i>
On the other hand, this idea is quite different from what suggested by other unit testing frameworks.
For instance, the documentation of <a href="http://www.ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">Test::Unit - Ruby Unit Testing Framework</a> reads:
<i>Its handy to collect a bunch of related tests, each test represented by a method, into a common test class that knows how to run them.
The tests will be in a separate class from the code theyre testing for a couple of reasons. First of all, it allows your code to stay uncluttered with test code, making it easier to maintain. Second, it allows the tests to be stripped out for deployment, since theyre really there for you, the developer, and your users dont need them. Third, and most importantly, it allows you to set up a common test fixture for your tests to run against.</i>
Regarding the advantages outlined by NetWeaver Developers Guide:
- Programs and tests might be kept synchronized even if they don't belong to the same unit of code.
- Moreover, you could assure that the test and program code are transported together by saving them in the same package.
- And quite frankly, I don't have a thourough understanding of the reason why external tests only allow <i>black box tests with an outside perspective</i>.
What are your opinions on this?
Regards, DavideHi,
when I started unit testing with JUnit I was quite surprised that SAP groups the tests with the production code. But now I actually really like it. It has a few advantages:
- Good tests serve as an excellent documentation so why not bundling them together.
- If you want to look at the tests they are easy to find.
- I write all my class tests as local classes. I found out that it really helps me to focus on writing tests only for the class under test. Sometimes it is quite easy to forget the "unit" and write integration tests again.
Regarding your question:
>And quite frankly, I don't have a thourough understanding of the reason why external tests only allow black box tests with an outside perspective.
Usually I would not use the term black box testing in this context. Maybe you mean that it is easy to access private attributes, methods when you group class and testclass together?
Normally black box testing means that you cannot look at the implementation of the code under test. So your tests are based on the specifications or if there is not one, on your common sense.
cheers
Thomas -
unable to delete Role from User ID in SAP SOLMAN production system but able to from DEV with the same authorization, pls suggest
Hi,
For SU01 role removal, you do not need S_USER_AGR with 02, and as you mentioned both authorizations available in production, if so trace should not show you the S_USER_AGR with 02 with RC=04.
I would recommend to do role comparison for the user performing the activity. and then check if you have the S_USER_AGR with 02 in user buffer SU56.
But ideally it should not ask you S_USER_AGR for 02 through SU01, so please take help of abaper to debug it.
Also put trace in non-prd to see if S_USER_AGR is getting checked with 02 for removal through SU01.
BR,
Mangesh -
I'm familiar with the technical concept of ABAP Unit testing, using both local or global classes, running sets of Unit Tests using the Code Inspector. However, I'm struggling with two issues:
a) Technical issue: how can I test a Protected or Private method of a class using ABAP Unit testing? It works if the class to be tested has granted friendship to the unit test class, but is that the way to do this?
b) conceptual issue on the types of Unit Tests to define: the Unit Test is based on comparing actual results with expected results. But how can I predict a result on a development environment that is constantly changing?
Thanx in advance
Ben MeijsHi!
For having plan vs actual report, first of all you need to define CO versions through ORKE for your operating concern. You also needs to define plan version through KE14. Also you need to assign COPA reciever plan version for integrated planning.
All your SD condition types need to be assigned to value fields. Also to flow actual values of production orders, CO Orders - it is required to assign PA transfer structure to settlement profile. Settlement profile must allow profitlability segments as settlement recievers and it must be stored in settlement profile. The assignment ensures that variances also flows to COPA. Key figure should also be defined for when assessment is caried out from cost center accounting to COPA. Also your value fields are also to be assigned to Cost component structure in COPA.
After doing above necessary activity, you may plan for your form of report through KE34. Lines, form and header are specified by means of characteristics or value fields.
Hope it helps a lot!
Please revert back for any query.
Thanks & Regards,
Taral Patel -
Delete COPA value fields in a productive system
Does anyone have practical experience with deleting COPA value fields in a productive system?
The issue is that old, no longer used value fields should be deleted from a productive system to allow creating new ones, as the maximun number of value fields is reached.
An alternative would be to delete the prior transaction data captured on these no longer to be used value fields and rename them for their new use (to avoid that different kind of old and new data is reported on the same value field).
I am refering to the documentation on transaction KEA0 (or OSS note 160892 up to release 4.5), where it is mentioned that deleting value fields should only be done for operating concerns that have not yet been used productively. Did anyone do this already in a productive system?
Cheers, PeterTo delete characteristics or value fields, you should perform the following
activities:
1. Delete the corresponding characteristics and value fields from
Customizing in all clients (this includes forms, reports, planning
layouts, and so forth). To locate characteristics and value fields, use
the appropriate where-used list in the Customizing Monitor. You can
access it by choosing Tools -> Analysis -> Check Customizing Settings
(TA KECM).
You can jump directly from the where-used list to the relevant
Customizing transaction and then delete the appropriate field there.
2. Switch to the screen for maintaining the data structure of an
operating concern (Maintain operating concern).
3. If you need to effect other changes to the datastucture for the
operating concern before making any deletions, effect those changes and
save the data structure.
4. In order to be able to select the fields of the data structure,
choose Extras -> Characteristics (or Value fields) -> Unlock.
5. Select the characteristics and value fields to be deleted and remove
them from the data structure with the "Reset fields" function.
6. Reactivate the operating concern. The system starts by checking
whether the operating concern contains any data and whether the fields
to be deleted are still being used in any Customizing settings.
7. If none of the fields are still in use, the system then starts the
re-activation. If the operating concern does not contain any data or
does not require the database system to be converted, the tables are
activated. You are then able to activate the environment for the
operating concern. In this case, the following activities no longer
apply.
If the operating concern already contains data, a system message tells
you that the database needs to be converted. If you proceed, an
activation log appears (at the top of the list).
8. Analyze the activation log. If it only contains error messages
telling you to convert the tables, proceed with the next activity.
You must otherwise remove the cause of the errors before the tables can
be converted. In this case, you should answer "No" to the next prompt,
which asks whether the conversion transaction should start.
9. If you still only receive error messages telling you to convert the
tables, choose "Back" and start the conversion.
10. Plan a job for the conversion. A list of the tables to be converted
is shown for this. If the tables only contain a small amount of data
(less than 10 000 records), then all the tables can be converted in one
job. In that case, you can select all the tables.
For larger tables, conversion should take place in several jobs.
However, you should ensure that table CE4xxxx (where xxxx = operating
concern) is the last table to be converted.
Warning. No other changes can be made to the operating concern during
the conversion.
A copy of the table is generated during the conversion. The database
system should have sufficient memory available for this copy.
To schedule conversion as a job, use the "Schedule selections" function.
You can display the current status of the conversion by selecting the
"Refresh" icon. Tables disappear from the list once they have been
converted sucessfully. If a conversion is taking a while, it is also
possible to leave the transaction. You can then continue the conversion
using DB requests -> Mass processing in one of the following ways:
With the job overview. You access this by choosing System -> Services ->
Jobs.
Using the database utility transaction. You access this by choosing
Utilities -> Database Utility in the ABAP Dictionary menu.
You can use the status function to call up the status of the operating
concern during operating concern maintenance. You need to activate all
tables after conversion.
11. To analyze errors that have occurred during the conversion, you can
use the database utility transaction by choosing Extras -> Logs. The log
has the same name as the conversion job: TBATG-date. You can also
restart the conversion with this transaction.
For more information on the database utility, choose Help -> Application
help while still in the above transaction.
12. Once you have activated all the tables in the operating concern,
generate the operating concern environment from within operating concern
maintenance.
You can then use the operating concern again.
Please, refer to the IMG documentation under Controlling ->
Profitability Analysis -> Structures -> Define operating concern
-> Maintain operating concern, for further details.
Hope it helps -
Transaction Launcher: Logical System in Production System does not change
Hi,
I created a transaction launcher in the CRM development system (CRD) to launch the transaction IL02 in the ECC 6.0 system (ECD). Then I transported the changes from CRD to the CRM production system CRP. I also transported the changes from ECD to ECC production system ECP.
However, when I see the transaction launcher in CRP system, it is still configured for the URL of ECD. I want the transaction launcher to connect to ECP. One option I have is to change the class name in the CRP system. However, I am not allowed to create a new ABAP class in the production system. Is there any other way to change the target system automatically in production system?
Thanks,
Rohan.Thanks Piyush. Could you be a bit more specific? I followed these steps:
1. In transaction CRMS_IC_CROSS_SYS, created a logical system URL for production system
2. In customizing setting Copy/Delete Launch Transactions, deleted the transaction launcher id.
3. In customizing setting Configure Transaction Launcher, created the same transaction launcher id newly.
I still am not able to change the logical system. However, I can do it if I change the class name.
While deleting the transaction launcher id, should I be deleting all dependencies?
Regards,
Rohan. -
Short dump "EXSORT_NOT_Enough_MEMORY" in production system
Hi,
"EXSORT_NOT_Enough_MEMORY" dump occuring in production system,Could any one please tell me how to fix this dump.
Please refer the error message below
What happened?
The current ABAP program had to be terminated because the
ABAP processor detected an internal system error.
The current ABAP program "RSBPCOLL" had to be terminated because the ABAP
processor discovered an invalid system state.
Error analysis:
The current ABAP/4 program was meant to sort a dataset (internal table
or extract). For reasons of capacity, this was not possible due to
insufficient main storage space. Therefore, the
external sort was called and resulted in the following error:
the following error:
SAP runtime system internal error.
Last error logged in SAP kernel
Component............ "EM"
Place................ "SAP-Server cambsvr15_PEC_00 on host cambsvr15 (wp 12)"
Version.............. 37
Error code........... 7
Error text........... "Warning: EM-Memory exhausted: Workprocess gets PRIV "
Description.......... " "
System call.......... " "
Module............... "emxx.c"
Line................. 1886
and i see that background job "SAP_COLLECTOR_FOR_JOBSTATISTIC" job being failed with below error.
Job started
Step 001 started (program RSBPCOLL, variant , user ID BACKGROUND)
ABAP/4 processor: EXSORT_NOT_ENOUGH_MEMORY
Job cancelled
Please help me to correct this error.
Best Regards,
VinodHi Bhaskar,
yes, I have checked the Wp status and it looks fine.I'm getting this error on My PRD system on regular basis since 1 week.
We have tried to restart the server but no luck.
Here are the ST02 values and background job SAP_COLLECTOR_FOR_JOBSTATISTIC also being failed with this error.
Buffer Hitratio Allocated Free space Dir. size Free directory Swaps
[%] [kB] [kB] [%] Entries Entries [%]
Program 99.11 400,000 1,481 0.38 100,000 90,774 90.77 36,307
CUA 99.31 3,000 264 10.53 1,500 1,263 84.20 14,934
Screen 98.45 4,297 27 0.82 10,000 9,653 96.53 645
Calendar 99.76 488 359 75.10 200 48 24.00 0
OTR 100.00 4,096 3,439 100.00 2,000 2,000 100.00 0
SAP memory Current use Max. use In memory On disk
[%] [kB] [kB] [kB] [kB]
Roll area 1.45 3,808 7,680 262,144 0
Paging area 3.40 8,904 13,056 0 262,144
Extended Memory 9.05 389,120 812,032 4,299,776
Swaps
0
21,249
0
16,399
36,307
14,934
645
0
0
272
0
210,742
0
Please let me know if you require further information.
Thanks & Regards,
Vinod -
Change of decimal places in productive system
Hello
We are on ECC 6.0 in a post Go Live environment.
In our productive system we have set the decimal places to 2. For our business requirements, we would like to maintain 3 decimal places to 3 for Logistics modules (SD / MM & PP) where as we would like to maintain 2 decimal places for Financials module.
Pls advise us of the methodology of this changeover as well as the possible side effects as a result of this change.
Thanks & Regards,Hello
The number of decimal places saved on the database is determined by the Global Settings made in Customizing for that unit (unit of measure or currency unit). If no entry has been made in Customizing, the number of decimal places saved for this key figure and characteristic value is the number of decimal places shown in the planning table at the time of saving. If the key figure has no displayable unit (for example, if it is a percentage), all the decimal places are saved.
However, you need to perform some testing of scenarios to really know the impact 2 different decimals. Definitely, there is one aspect, whether any conversion is required or is it just a display of values in decimals.
Data from FI to other modules is not a issue, but data from other modules to FI should be able to take this extra decimal.
Although personally in my opinion it is not going to cause any errors, please test the same.
Check documentation on Key Figures
Reg
assign points if useful
Maybe you are looking for
-
Is it possible to force only a single evaluation of a function?
I am only an occasional user of numbers... The question: Is it possible to force a single evaluation of a function like TODAY() ? i wanted to place the current date into a gas milage numbers document, and I foolishly used =Today(). Well the second t
-
How do I open a book once purchased from istore?
-
What does the following message mean?
java.lang.NullPointerException at com.oracle.wfdemo.servlet.Controller.doPost(Controller.java:107) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.
-
PS won't let me save because "Disk not Available"
This is the second time this has happened. Customer help had me delete a file in the library but I can't remember which file. Can anyone help me?
-
IPad apps not accessable.
My iPad will not show apps that need updating. Is there a fix?