Quantcast
Channel: SCN : Blog List - SAP Project Systems (SAP PS)
Viewing all 19 articles
Browse latest View live

Using Validations in Project System with Examples

$
0
0

Purpose

The purpose of this blog is to help the beginners in creating validation in Project system, also it lists some examples of the commonly used validations with prerequsities and checks.

Validation

SAP Help explains validation as a check of values or combination of values in the SAP environment. In the Std SAP System almost all data’s are validated against some tables or master datas. In addition to SAP defined validation, a user can define his own set of validation to carry out project specific checks. 

A validation has three areas, Pre-requisites, Checks & Messages.

Pre-requisites:

It is the statement which determines whether validation should be carried out or not. If the statement is true, then system proceeds to check area otherwise allows the transaction.

Check:

This is the condition which is to be validated. If the statement is true, then the transaction continues, but if the statement is false, the system displays the message.

Message:

This is the message which is to be displayed if the check statement fails.

Validation in Project system:

You can create the validations for Project systems using Tcode OPSI or from the following menu path:

SPRO >Project system> Structures> Operative Structures> Work Breakdown Structure/Network> Maintain Validation.

Once you create the validation, this validation should be maintained in Project profile (for Project Definition and WBS element) or in Network Profile (for Network header and Network Activity) Make sure to tick the check box automatic validation in project profile, so that system performs validation automatically whenever you save the project. 

You can assign only one validation name per object, say project definition or WBS Element, in project profile. But you can create 999 validation steps for a single validation name.

Examples of Commonly used Validation:

 

Purpose

Pre-requisite

Check

Action

To allow specific project codes for specific project profiles

PROJ-PSPID like A*

PROJ-PROFL = ‘1000’

System checks if the project code starts with A, then project profile 1000 has been used or not.

To check 1st level WBSE code is same as project code

PRPS-STUFE = ‘1’

PRPS-POSID =

PROJ-PSPID

System checks First level WBSE and Project definition number are same or not

To check project code and WBSE code are same

PROJ-PROFL = ‘00001’

PRPS-POSID :1-X: =

 PROJ-PSPID

System allows to have different WBSE code under a project code, in order to avoid this, you can perform this check. Here, X denotes the length of the project without special characters.

To check specific characters in the WBSE code

PROJ-PROFL = ‘00001’

PRPS-POSID :X-X: = ‘A’

System checks whether the ‘X’ th position of WBSE code is ‘A’ for the project profile 00001

To allow only certain user to enter a value in certain fields

PRPS-PRCTR <> ‘ ‘

SYST-UNAME  = ‘ABC’

System allows only user ABC to enter the value for Profit center for all WBSE

To make project type mandatory for particular project profile and for 1st level WBSE

PROJ-PROFL = ‘001’

AND

PRPS-STUFE = ‘1’

PRPS-PRART <> ‘ ‘

System checks whether the project type has been entered for 1st level WBSE of the project with profile 001

To make resp cost center as madatory field for a particular network type and profile.

CAUFVD-PROFID = ‘0001’

AND

CAUFVD-AUART = ‘PS02’

CAUFVD-KOSTV

<> ‘ ‘

System makes sure that resp. cost center is filled for a particular network profile and network type.

 

Useful link:

http://help.sap.com/erp2005_ehp_04/helpdata/en/da/6ada3889432f48e10000000a114084/frameset.htm

You can read more about validations in this help section.


Internal Orders to Project Systems

$
0
0

I’ve come across few SAP customers who prefer to initially implement Internal Orders to manage their projects.    After some time they realized that their projects can be better managed in Project Systems component of SAP.    They then decide PS implementation.  To centrally manage all of the projects and get consolidated reporting the customer needs to migrate existing Internal Order projects to Project Systems.  This is specially required for long term projects for which some values are posted on Internal Orders and some more transactions are expected in future.

 

I faced this situation on a couple of projects.  I couldn’t find much information about it and have to do a lot of research to draw a concrete and viable solution.   Keeping in view my client’s good acceptance I thought to contribute it to SDN.

 

To migrate the data from Internal Orders to Projects we may need different activities for different scenarios.  I would recommend thoroughly analyze all the Internal Order and associated AUC posted and un-posted scenarios.  Discuss them with concerned your customer and create a scenario list.

 

You may find multiple scenarios in the system from simple ones to very complex ones, but mostly the following scenarios or a combination of the following scenarios is highly likely to be found:

 

Scenario No. 1 - Un-posted Orders:  Master Data of Internal Order is created but no values of Budget, Commitment, Plan or Actual Cost posted.

Solution: This one is the very simple right?  Just create Project Definition, WBS Element and you are done.  You can close the Internal Order now and use the WBS Element.

 

Scenario No. 2 – Internal Orders Posted with Actual Values:  Some of the Internal Orders may be posted with Actual Data from MM Invoices, FI Invoices, Travel Management and /or from other SAP components.

Solution: Create corresponding Project Definition and WBS Element(s).  Settle the Orders (KO88 or KO8G Transaction Code) to the WBS Element(s).  In case AUC values are posted to the Internal Order, AUC transfer transaction (ABUMN) may also be required from old to the new AUC.

 

Scenario No. 3 - Budgeted Orders:  Internal Orders posted with Budget values.

Solution: The posted budget values have to be returned with KO26 transaction, as there is no Budget Transfer facility from an Internal Order to a WBS element.  The same values can be added to the corresponding WBS element with CJ30 or CJ37 Transaction Code.

 

Scenario No. 4 - Orders with commitments Posted:  Some of the orders may have open commitments with Purchase Requisitions or Purchase Orders.

Solution: In this case we may need to change the PR with ME52N or PO with ME22N transaction.  Replace the PR/PO account assignment from the Internal Order to the new WBS element. The system will close the commitment from the Internal Order and raise commitment on the WBS element.

 

Scenario No. 5– Planned Internal Orders: Orders posted with Overall Plan, Cost Element Plan and / or Statistical Key Figure Plan data.

Solution: Settle the plan data to the corresponding WBS Element with KO9E or KO9G transaction codes.

 

Scenario No. 6 - Settled Orders:  Fully settled Internal Orders may not require migration to Project Systems.

 

LSMW programs or ABAP BAPIs may be used for uploading data if the data volume is very high.

 

Some of the projects may not be fully migrated.  For example PR, PO and GR are posted on an Internal Order but the IR is still awaited.  In this kind of situation it’s very difficult to migrate the Internal Order.  In such kind of situations define the business process to handle the pending transactions and migrate them latter, once the limitations are removed.  

Create Status Profile to Unlock Planning

$
0
0

Project Builder is the central tool for many users and it is very much required for the organization to manage Authorization to lock and/or unlock Planning feature.

 

First we need to create an Authorization key for Unlocking the planning and assign this against the respective user status in Status Profile. Step by Step details to create authorization key and Status profile is explained below.

 

User roles created with auth objects B_USERSTAT and B_USERST_T and respective authorization key can unlock the planning.

 

N1.png

N2.png

N3.png

N4.png

New PS Solution - SAP Commercial Project Management

$
0
0

SAP has been working on a new solution that should be interesting to those of us that work in the projects area of ERP.

 

The new solution, SAP Commercial Project Management, is geared for the lead-to-cash scenario and covers processes for selling, planning, execution, and monitoring of projects.  The new solution has different components to handle these diverse requirements.  There is a new Project Workspace, a new Project Financial Planning area as well as Project Issue and Change Management area.

 

SAP had been hosting calls over the past year where they reviewed the current state of the solution but they were closed to a small group of customers, partners, and SAP employees.  Now that the solution is nearly released, Dr. Martin Effenberger and his team are hosting some additional calls that are open to the rest of the SAP community.  Four sessions are scheduled and registration is required.

 

Here's a link to Martin's blog in the CPM area of SCN: Information sessions for customers on SAP Commercial Project Management.

Error log of ML81N

$
0
0

Symptom

You would like to have availability control check in transaction MIGO and ML81N. It is not possible in standard system. Therefore, you have applied BADI IM_BEHAVIOUR according to SAP note 696362 and the error message is now triggered in error log of ML81N (as result of budget exceeded). However the system is only generating the error message that BUDGET EXCEEDED, it does not display amount exceeded.

Environment

·       All SAP R/3 releases

·       All SAP ERP/SAP ECC releases

Reproducing the Issue

1. Execute the transaction ML81N, enter relevant input parameters (eg. service number, account assignment category, date and etc.)

2. Click on 'Save'

3. On the pop subscreen (Acceptance Posting) -> choose 'Error Log'.

4. Message is displayed (eg. RC=3 Item 001 WBS element XXX budget exceeded).

Cause

The error log of transaction ML81N only issues the short text of messages (due budget exceeded). The amount by which the budget was exceeded, cannot be recognized since this amount can only be found in the long text of messages BP603/BP604.

Resolution

You would need to apply modification in function module BP_GIVE_MESSAGE (see the attached coding) toget error log will issue a message that contains both:

-  the WBS element whose budget is exceeded and

-  the amount by which the budget is exceeded.

Keywords

BADI IM_BEHAVIOUR, SAP note 696362, transaction ML81N, program SAPLMLSR, entry sheet, error of acceptance posting, error log, amount, budget exceed, BP603, BP604, Function module BP_GIVE_MESSAGE, short text

Do you know the new data sets added for Project editor(PSHLP20) in SAP ERP 6.0 EHP6?

$
0
0

You use data set selection profiles and data sets to restrict the amount of data the system reads, either directly from the database or from the cache, thus reducing the load time. You can use data sets to select the project data that the system displays. The following data sets are added in SAP ERP 6.0 EHP6:

 

  •   Dates/Relationships
  •   Activity Processing
  •   Progress Data
  •   Milestone Data
  •   Material Components
  •   PM/CS Order Dates

 

You can find more details about the new data sets from the following on-line help link:

http://help.sap.com/erp2005_ehp_06/helpdata/EN/ac/426a228cbd42a7b62326b2847f6780/content.htm?frameset=/EN/6d/d477bf66334e358c21c5abebd595f5/frameset.htm

Cost Distribution from a common WBS element

$
0
0

Business Scenario : All the common expenses like project management expenses gets posted to a common WBS element. This cost has to be distributed to other WBS elements based on the number of employees employed in each WBS element (or based on any other proportion).

 

Step 1 : Execute program RKALPSAC to enable WBS elements as sender for the assessment cycle. (SE38)

 

Step 2 : Create WBS element group using KJH2 ( the set of WBS elements to which the common cost is to be allocated)

 

Step 3: Create a statistical key figure (SKF) using KK01 to represent the number of employees.

 

Step 4 : Plan the SKF for the WBS element group in CJS2

 

Step 5 : Create a cost distribution cycle using KSW1 (In Senders/Receivers tab, sender should be common WBS element ; receiver is the WBS element group that is created )

 

KSW1_1.JPG

 

 

Step 6 : Run KSW5 periodically so that the cost gets distributed from the common WBS element.

Period mapping to calendar month.

$
0
0


When you do progress analysis or check information report base on period, you may want to know what calender month is matching with what period. Then you can follow the following steps to check it:

  1. Find the controlling area of the object in the object master, for example, CJ20N for the project or WBS-element.
    MP01.JPG
  2. Find the fiscal year variant of the controlling area in OKKP.
    MP02.JPG
    Double click the controlling area line.
    MP03.JPG
  3. Check the defination of the fiscal year variant in OB29.
    MP04.JPG
    Choose the period and click on the Periods folder.
    MP05.JPG

SAP Project Systems- It's Future!!!

$
0
0

Change or Disappear seems to be the Mantra these days. So where is SAP Project Systems (SAP PS) heading for? This question has been popping up in my head from last few months. So I thought let me try and write a blog piece on this topic and get some expert views on it.


To give you all a background, I have been a SAP PS consultant from last 7 years and working on PPM since last one and half year. I truly love the capabilities and functionality which SAP PS provides to the Project Managers. Though I do encounter users complaining about the scheduling part of projects sucks in PS then say in Microsoft Projects (MSP), but overall SAP PS rules the PM area was my Holy truth

 

The complex nature of SAP PS when it fully integrates with all other modules of SAP makes it a difficult candidate for some to understand; whereas once you understand the dynamics of PS it becomes quintessential for your Project Management activities. The wide range of SAP PS to map project management and controlling with financials makes it a best fit.. But now things are changing!!!

 

People are moving towards WEB, there is a  strong push on ease of doing business, information needs to be readily available and easy to decipher and here I think with the advent of PPM 6.0/6.1 by SAP, PS is losing its turf as the most favorable management tool.

 

I don’t see any major enhancements to SAP PS from last 7 years, though there have been some cosmetic changes overall to the SAP PS solution nothing revolutionary has come up or Maybe I am wrong!!

 

From where I am looking at SAP PS it looks like ending up becoming a back end integrator for PPM. This thought makes me uneasy @ the future of PS. Is it the end of road for PS as we know it?


So what are the take guys? Will PS survive in its current form?  Your comments and thoughts are welcome.

 

Cheers

Sammar

Status Selection Profiles as a useful reporting functionality in SAP PS

$
0
0

The objective of this post is to introduce beginners to the functionality of Status Selection Profiles.  It is used exclusively within SAP PS reporting.

 

Many projects are ignoring this functionality and it is never on the priority list for the implementation team.

 

On the other hand it is one of those "quick wins" that can create a business value, being both simple and system standard.

 

Most of standard SAP PS reports have the possibility to include a Status Selection Profile as part of the selection criteria.

 

It works as a filter based on the combination of statuses.

 

If user statuses are making part of the system design the functionality of Status Selection Profile only gain additional weight, but even for system designs without user statuses it can be a very useful tool taking little effort to implement.

 

You need to specify the Status Selection Profile using this menu icon BLOG_03.png (usually it is on the most right hand side on the icons bar).

 

Further down I am going to illustrate it with two basic examples.

 

Example 1:

 

Many big projects can contain WBS-elements that are already Closed and not Closed at the same time.  From the management perspective it makes sense to focus only on the live parts of the project and to reduce the report output only to the ongoing activities.  That can be done by filtering out Closed WBS-elements, also you can consider to filter out created, but not released or partially released WBS-elements too.  In the below example you can see a part of customizing to exclude Closed or Created WBS-elements:

 

BLOG_01.png

 

Example 2:

 

If you have active availability control mandatory for your projects, but no system control to make sure it is in place the simple Status Selection Profile can also help you running a quick sanity check on WBS master data.  On the below screen you can see a part of customizing to report the Released WBS-elements that are missing Availability Control:

 

BLOG_02.png

 

Thank you for your reading time and hope you did liked it.

Aware of SAP Wiki for Project System

$
0
0

We have another knowledge resource for Project System tha is the SAP Wiki for Project System.

 

I've seen some SCN spaces listed the related Wiki link at the first page, but not for this space. I think we should aware of this knowledge base and use it properly to enreach our knowlege and share knowledge with others also.

 

The link is:
Project System (PS)

 

Different with posts or documents, the Wiki is more systematic, it may easy to find what you want by navigating the page structures.

 

 

Just want to share it and hope we can improve the efficiency of its use.

Remove PS Info System pop-up for Database Profile

$
0
0

This is a small tip about how to improve a user interface within PS Info System.

 

Everyone who ever run PS standard reports remembers a pop-up window to select a PS Info Profile.  There is no save button and even though most of users need the same profile, they have to spend time again and again by selecting the same value from the drop-down list:

 

IMG_200.PNG

 

It can be solved by maintaining two user parameters PDB and PFL in SU3 transaction:

 

IMG_203.PNG

 

In case you wonder how to find the names of parameters it can be done in two simple steps directly from the original pop-up window.  First press F1 help button on the Database Profile field:

 

IMG_201.PNG

 

Next, click on the technical information icon and take a note of the Parameter ID:

 

IMG_202.PNG

 

Thank you for reading and hope you liked it.

A cockpit to efficiently and flexibly manage customer-specific KPIs for projects

$
0
0

Reporting on project-related KPIs, project cash flow accounting and reporting are critical to companies delivering capital-intensive projects as part of their core business.

 

However, in many cases these processes are only insufficiently supported by project management information systems and tools. As a result, the process is often based on spreadsheets, time-consuming, error-prone and cumbersome for project managers, project accountants and controllers. To accommodate both current and future requirements from the business as well as to integrate existing and new systems can be complex and costly.

 

Examples of customer requirements for a personalized, simplified and optimized process are listed in the below graphic.

 

blog4.PNG

 

To accommodate these requirements a cockpit for project-related key figures including project cash flow reporting can be delivered as a custom-developed solution by SAP Custom Development.

 

The only prerequisite for using the cockpit is an active SAP PS Project Cash Management (SAP ERP PS-CAF, PS-COS) in ECC 600 (ERP 6.0 EhP0 or higher). The cockpit is well suited to leverage SAP HANA capabilities and could also be made available in a mobile version.

 

The framework provides a central point of entry via a configurable and personalized project dashboard. In addition to master data also various project-related, configurable KPIs are shown at a glance. From within the project dashboard context relevant applications can be launched. For example SAP GUI transactions as well as SAP Web Dynpro applications are supported. For project cash flow reporting a SAP Web Dynpro application is used, which is able to support a template-based approach via a standardized report layout. It is also possible to create e.g. country-specific report lines.

 

The custom-developed solution can be provided as an add-on and is based on ABAP Web Dynpro using Personal Object Worklist (POWL) and Launchpad infrastructure. Capabilities can for example include:

  • Configurable Project Dashboard
    • Navigation
    • Settings
    • Queries
  • Configurable Project Cash Report
    • Launching backend transactions (e.g. CJ03)
    • Recalculate KPIs
    • Project cash report execution
    • Project cash report features
      • ‘Currency Conversion…’
      • ‘Print Version’
      • ‘Export’ to MS Excel
      • ‘Time Frame’ settings
      • Graphic
    • Recalculate KPIs
    • Configuration
      • Project cash report layout
      • Key Performance Indicators (KPIs) at the level of database tables (e.g. PROJ) and fields
  • Configuration
    • Overview Project Cockpit Customizing
    • General POWL TYPE settings
    • Dashboard Configuration


The customer value that can be realized by using a cockpit for project-related KPIs is depicted in the below graphic.blog5.PNG

SAP Custom Development offers a wide range of services for building custom applications to address unique, often mission-critical, business challenges. Working with customers and SAP Custom Development creates applications that deliver powerful, differentiating solutions. Combined with SAP Custom Development’s comprehensive maintenance offerings and SAP Advisory and Implementation Services it is a fast, low risk way to seize market opportunities and respond dynamically to new business challenges.

For more information visit us at www.sap.com/customdev.

Architecture and functionality of extended project management tools for SAP PS

$
0
0


The purpose of this blog post is to compare two most common architectures for the extended project management based on SAP PS data.

 

Naturally SAP PS has a number of functional limitations. To cover these limitations various tools are available on the market.  I will not mention any of them specifically to avoid accusations of being bias or impartial, but instead will try to present an independent evaluation and compare two most common architectures.

First we need to give a definition to the extended project management tool by means of its functionality.

 

This is very much a best guess of what such solutions may include, because I am not taking any specific products in this review.

 

I will not list the extended project scheduling functionality here, as normally it would be a standalone function or application due to its complexity.

 

So, here we go:

 

1. Extended Cost Forecasting
2. Cost Forecast Phasing
3. Cost Variations/Change Management
4. Accruals Management
5. Extended Cost Planning
6. Extended Progress analysis
7. Extended reporting capabilities
8. Improved usability


When it comes to the system architecture there are two apparent choices: doing it in SAP ECC or doing it outside.  For the "outsiders" the common choice goes for SAP BI or SAP BPC.


Many companies are not exploring a full potential of SAP standard functionality.  None of "vanilla" implementations will reach out to dark corners of SAP PS customizing such as Forecast Workbench to understand what is available and what is not:


Forecast_WB.png


Let us get back to main topic and have a closer look at the individual aspects of ECC vs. BPC scenario:

Extended Cost Forecasting.

 

Most likely the BPC solution will not do any automatic recalculations for FTC value (Forecast to Complete) from one month to another.  Common recalculations that can be done automatically are:

  1. Decreasing the FTC value based on new Actual cost for the period

  2. Automatic roll-forward of phased FTC value to future periods


Even though such logic can be considered as simple and basic it can take a long time to process.  But in ECC it can be scheduled as a background job.


Generic BPC solution normally will include the so called “initializing” step every month, that is for example deleting the FTC value for the current month and forcing business users for manual entry of FTC every month as well as demanding a manual re-phasing.

 

Cost Variations/Change management.

 

In the ECC you can take PS Claims functionality as the foundation. That immediately gives you a number of important advantages completely for free and "out of the box". In particular a standard approval workflow, master data linkage to other data objects (that often not available in BI with standard extractors), classification system and all standard reporting for PM notifications. Taking the BPC road you will normally keep the whole thing in BPC and re-develop it from scratch. That is not necessarily a bad thing if final result exceeds the original or is highly specific, but that will come at a price. The problem here is that few companies really do investigate what the standard ECC can provide, but jumping directly into BPC development effort and consulting companies naturally never object such choice. Sometime it takes a single "expert" speaking based on his experience to influence the audience.


Below is the sample Claim screen from the standard SAP ECC:


Claim.png

 

Accruals management.

 

When it comes to figures calculated based on Progress version data for example, it is easier to calculate in ECC. In BPC you will normally enter figures manually, because your actual figures are bit outdated and I never seen a Finance department accepting a freeze period for financial postings. So you will need to keep one eye on ECC data to enter your BPC accrual figures. Next they still require a posting into ECC. The process is easier and more under control if you are in ECC already. Taking figures from BPC to ECC requires some manual steps and controls. Probably you will need to generate a flat file and make sure it is posted into ECC. How that status can be tracked back in BPC? What if it is not posted or posted twice? How BPC can recognize accrual postings when they flow overnight as actual cost into BPC and not do the double counting?  There are quite a number of interesting questions around this process.

 

Improved usability.

 

BPC provides an Excel interface and not much can be changed around it.  Without HANA you will not get a real-time data, so you keep being dependent on BI extractions and its schedule.  ECC on the other hand provides real-time data without need for HANA and all the classic drill-down options are available. It can be report-report interface from summary figures to line items or a drill-down to the master data. For example to Purchase order detail view. Output forms in ECC are almost unlimited, from the same Excel to classic ALV or PDF.

 

Another point on usability is that BPC does not “know” what is the current period, what is the previous period. BPC does not have own system variables for such basic characteristics therefore it will be an additional administrative task to maintain such environmental values manually every month.  That demands an extra discipline from the business organization.

 

In ECC the automatic forecast recalculation functions allow processing for hundreds of projects in a background, minimizing user efforts to update project forecasts. In BPC on the other hand it is always a manual task project by project.

 

Roles and Authorizations.

 

ECC solution can use all the standard authorization checks available in SAP PS module. Authorizations concept in BI is quite different and therefore will require a double maintenance or even a specific data model to cover for authorization workarounds. On another hand same workarounds can improve a system performance by dealing with a smaller data cubes.

 

 

The data you can trust.

 

ECC has a real-time data and that says it all. For BPC there is always a time gap.  Time gap is not necessarily a problem if you follow a strict process, so that indeed can be acceptable to some organizations during a month-end process when there is a freeze for actual postings in the current period for early month-end closing.  But no doubt it is an additional complication and demands an extra discipline from the business organization.  The real-time data is important not only for actual cost and commitments, but also for system statuses of WBS-elements for example.  Trying to feed accruals to the locked WBS will fail on the whole file. In ECC the system can flag you the issue immediately.

 

System performance.

 

The system performance depends very much on the data model for BPC and on ABAP developer qualification for ECC.  There is no apparent winners or losers for this criteria, but there is a need to test the system on big data volumes and run a number of stress tests.


Now let me tick all the boxes in a summary view. I will use a simple scoring model on the scale from 1 to 5.

 

 

ECC Development

BPC based tool

Extended Cost Forecasting

5

3

Cost Variations

4

3

Accruals Management

4

3

Roles and Authorizations

4

3

Performance

N/A

N/A

Usability

5

4

Total:

22

16

 

If you are lucky within your organization not to be politically engaged with any particular vendor (and I must admit I have not seen yet such organization), then you have a chance taking a healthy choice with open eyes.


One of my SAP contacts shared an interesting opinion on BPC.  He is saying that if your SAP BPC project goes for over 3 months then something wrong must be happening and it means it is not used the way it was designed for.  I would interpret this the way that BPC must be a simple tool, while a common mistake is about reinventing standard functionalities with BPC and making it complex.


Good luck!


SAP CPM 2.0 integration with SAP PS

$
0
0

Hello All

 

I have successfully integrated SAP PS with SAP CPM 2.0.

There are many innovative offerings from CPM product like Project Issues & Change management ,Risk Management ,Financial Planning , KPIs & Alerts Management ,Status management ,Cross project reporting & many more which are not available in PS.

 

The look & feel of the product is too good.

 

Lots of standard dashboard views in CPM ,Pie charts ,Stack Graphs etc. makes it a powerful ,analytical decision making tool.

Multiple PS projects getting combined in single CPM master project makes it easy for Project Manager to monitor & compare cross project parameters.

 

Email Triggers are all part of standard product and requires no major configuration.

 

By in large CPM is very valuable & useful Add On to SAP PS.

 

The installation & functional configuration is very simple.

 

Also , lots of SAP notes are available for quick issue resolution.

 

No addition BI/BW box required as CPM utilizes existing BI layer of R3 - ECC architecture.

 

A great product offered by SAP.

 

Shubham


Function calls for standard project structure copy in SAP Project System

$
0
0

Introduction


     Creating an operative project structure in SAP project system based on a standard project structure or on another operative structure using BAPIs might be a very difficult task. The reason for that is that before the relevant BAPI for saving the new operative project structure could be called it would be necessary to select from the template project structure every single possible project object and sometimes there might be many. Among possible project objects we could list project definitions, WBS elements, network headers, network activities, network activity elements, milestones, material components, PS texts, relationships, etc.

 

     Luckily for us SAP comes with two function modules that when called in the correct order and together with some other function modules do the complex work with possibly much less lines of code. The functions are “CJWB_PROJECT_COPY” and “CJDT_CREATE_ACT_FOR_NEW_PRJ”.

 

     The first of the function modules is in charge of creating project definitions, WBS elements and other objects related to WBS elements (e.g. PS texts and WBS element milestones). The second function module is in charge of attaching standard network headers and their dependents objects (e.g. network activities, network activity elements, milestones, material components, etc.) to the objects previously generated by function module “CJWB_PROJECT_COPY”.

 

     Among the function modules other than the ones already mentioned that also have to be called in order to successfully accomplish the standard project copy the most important are “CJDW_GET_NEW_NUMBERS” and “CJDT_GET_NEW_NUMBERS”. These function modules are in charge of replacing temporary internal numbers by correct internal numbers that will be updated to the database (e.g. OBJNR numbers).

 

 

Code Samples


 

     Below are two sample codes for copying standard project structure. The first is a simple code for cases in which network headers are not necessary while the latter is a slightly more complex code for cases in which network headers are necessary. The second code sample also contains some lines for manipulating WBS element data (project responsible and applicant number) for demonstration purposes.

 

     The sample are based on the calls performed in standard transactions CJ20N and CJ2B (includes LCNPB_MF4T, LCNPB_MF55 and LCJTRF3B).

 

Sample 1: Simple project structure without network headers


  sy-ucomm = 'GEN1'.   CALL FUNCTION 'CJWB_PROJECT_COPY'     EXPORTING       call_from                                       = 'P'       standard_wbs_to_be_copied  = <-- standard project definition to be copied       no_dialog                             = abap_true       replace_string             = <-- project definition to be created     EXCEPTIONS       existing_project           = 1       existing_project_in_paging = 2       wrong_call                 = 3       wbs_for_copy_not_found     = 4       error_pspid_generate       = 5       no_copy                    = 6       error                      = 7       OTHERS                     = 8.   CALL FUNCTION 'CJDW_GET_NEW_NUMBERS'.   CALL FUNCTION 'CJDT_GET_NEW_NUMBERS'.   SET SCREEN 0.   COMMIT WORK.


Sample 2: Project structure with network headers and some data manipulation


 

REPORT zstdprojcopy.
 DATA: lt_cjdi          TYPE TABLE OF rcj_markl.
 DATA: ls_cjdi          LIKE LINE OF lt_cjdi.
 DATA: ls_proj          LIKE proj.
 DATA: ls_prps          LIKE prps.
 DATA: l_vsnmr          LIKE vskopf-vsnmr.
 DATA: ls_tc10          LIKE tc10.
 DATA: ls_tcn41         LIKE tcn41.
 DATA: l_old_ucomm      LIKE sy-ucomm.
 DATA: l_old_tcode      LIKE sy-tcode.
 DATA: l_start_termin   TYPE ps_plfaz.
 DATA: l_end_termin     TYPE ps_plsez.
 DATA: l_ntw_found      TYPE c LENGTH 1.
 CONSTANTS: c_vorgabe   TYPE caufvd-plart VALUE '1'.
 CONSTANTS: c_aplid     TYPE c LENGTH 1 VALUE 'G'.
 CONSTANTS: c_change    TYPE c LENGTH 1 VALUE 'V'.
 CONSTANTS: c_asterisk  TYPE c LENGTH 1 VALUE '*'.
 CONSTANTS: c_meth_tmex TYPE fcode VALUE 'TMEX'.
 CONSTANTS: c_vernr     TYPE ps_vernr VALUE 99.
 CONSTANTS: c_astnr     TYPE ps_astnr VALUE 99.
 * Source and Target Project Definitions
 SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME.
 PARAMETERS: p_sproj TYPE projs-pspid OBLIGATORY.
 PARAMETERS: p_tproj TYPE proj-pspid OBLIGATORY.
 SELECTION-SCREEN END OF BLOCK a.
 * Target project start and end dates
 SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME.
 PARAMETERS: p_plfaz TYPE ps_plfaz.
 PARAMETERS: p_plsez TYPE ps_plsez.
 SELECTION-SCREEN END OF BLOCK b.
 START-OF-SELECTION.   IF p_plfaz IS INITIAL.     l_start_termin = sy-datum.   ELSE.     l_start_termin = p_plfaz.   ENDIF.   IF p_plsez IS INITIAL.     l_end_termin = sy-datum.   ELSE.     l_end_termin = p_plsez.   ENDIF.
 * The two lines of code below might look strange at first, but they are necessary because in include FCJWBI00_OK_CODE_PAI somewhere
 * inside function 'CJWB_PROJECT_COPY' the system checks the sy-ucomm. If it is empty the process is aborted and only the project
 * definition is created. 'GEN1' is the same ucomm used in the copying process of the project builder (CJ20N)   l_old_ucomm = sy-ucomm.   sy-ucomm = 'GEN1'.   CALL FUNCTION 'CJWB_PROJECT_COPY'     EXPORTING       call_from                  = 'P'       standard_wbs_to_be_copied  = p_sproj       start_termin               = l_start_termin       end_termin                 = l_end_termin       no_dialog                  = abap_true       replace_string             = p_tproj     IMPORTING       project_workarea           = ls_proj       vsnmr_copy                 = l_vsnmr     EXCEPTIONS       existing_project           = 1       existing_project_in_paging = 2       wrong_call                 = 3       wbs_for_copy_not_found     = 4       error_pspid_generate       = 5       no_copy                    = 6       error                      = 7       OTHERS                     = 8.
 * Just for demonstration purposes in lines from 79 to 98 the person responsible and the applicant number are changed in the project definition.
 * Of course this could also be accomplished by substitution rules or BAdIs...   ls_proj-vernr = c_vernr.   ls_proj-astnr = c_astnr.   CALL FUNCTION 'CJDW_PROJ_MODIFY'     EXPORTING       i_proj        = ls_proj     EXCEPTIONS       beakz         = 1       pspnr         = 2       error_message = 98       OTHERS        = 99.   CALL FUNCTION 'CJDW_GET_TREE'     EXPORTING       levels    = 99       x_outline = space     TABLES       elements  = lt_cjdi     EXCEPTIONS       not_found = 1       OTHERS    = 2.
 * Also for demonstration purposes in lines from 102 to 126 the person responsible and the applicant number are changed in each WBS element of the structure.
 * This could also be accomplished by substitution rules or BAdIs...   LOOP AT lt_cjdi INTO ls_cjdi.     CLEAR ls_prps.     CALL FUNCTION 'CJDW_PRPS_GET'       EXPORTING         index     = ls_cjdi-index       IMPORTING         e_prps    = ls_prps       EXCEPTIONS         cancel    = 1         not_found = 2         OTHERS    = 3.     IF sy-subrc = 0.       ls_prps-vernr = c_vernr.       ls_prps-astnr = c_astnr.       CALL FUNCTION 'CJDW_PRPS_MODIFY'         EXPORTING           beakz     = c_change           index     = ls_cjdi-index           i_prps    = ls_prps         EXCEPTIONS           not_found = 1           posnr     = 2           OTHERS    = 3.     ENDIF.   ENDLOOP.
 * Prepare call of 'CJDT_CREATE_ACT_FOR_NEW_PRJ'   CALL FUNCTION 'CO_TA_TCN41_READ'     EXPORTING       plnaw      = 'N'       profidnetz = ls_proj-vprof     IMPORTING       tcn41_exp  = ls_tcn41     EXCEPTIONS       not_found  = 01.
 * The two lines of code below might also look strange at first, but they are also necessary because in includes LCJTRFJ8 and LCJTRFI2
 * somewhere inside function 'CJTR_CALL_FROM_EXTERN' the system selects some default values based on transaction code.   l_old_tcode = sy-tcode.   sy-tcode = 'CJ20N'.   CALL FUNCTION 'CJTR_CALL_FROM_EXTERN'     EXPORTING       aplid           = c_aplid       fcode_imp       = space       proj_imp        = ls_proj       trtyp_imp       = c_change       top_imp         = 1     TABLES       cjdi_imp        = lt_cjdi     EXCEPTIONS       no_existing_psp = 1       no_pprofil      = 2       OTHERS          = 3.   SELECT SINGLE *   INTO ls_tc10   FROM tc10   WHERE tcode = 'CJ2D'.
 * Again a strange but necessary line of code. In include LCOKOF1S somewhere inside function 'CJDT_CREATE_ACT_FOR_NEW_PRJ' the system
 * selects the default value for the order category from table t490 based on the transaction code. It would also be a possibility to
 * create a new entry in the aforementioned table with the transaction code in context (i.e. tcode of the current program)   sy-tcode = 'CJ20N'.
 * Function for adding network objects to the previously created project structure   CALL FUNCTION 'CJDT_CREATE_ACT_FOR_NEW_PRJ'     EXPORTING       tc10wa      = ls_tc10       tcn41_imp   = ls_tcn41       proj_imp    = ls_proj       vsnmr_copy  = l_vsnmr       sched_param = space       flg_new_prj = abap_true     EXCEPTIONS       no_entries  = 1       OTHERS      = 2.   IF sy-subrc = 0.     l_ntw_found = abap_true.   ENDIF.   CALL FUNCTION 'CNEV_05_COPY_EVOP'     EXPORTING       i_kokrs = ls_proj-vkokr.   CALL FUNCTION 'CO_BT_PROJKN_DET'     EXPORTING       projn_pa = space       projn_tv = space.   CALL FUNCTION 'NW_EX_SET_NETSTUFE_MAX_PROJECT'     EXPORTING       i_profidproj                   = ls_proj-profl     EXCEPTIONS       project_profile_does_not_exist = 1       network_profile_does_not_exist = 2       OTHERS                         = 3.
 * Check if any required field is still empty. This function module is optional and could result in disruptive pop-ups   CALL FUNCTION 'CJWB_CHECK_BEFORE_COMMIT'     EXCEPTIONS       cancel = 1.
 * Call network scheduling if network exists   IF l_ntw_found = abap_true.     CALL FUNCTION 'CJWB_PROJECT_INIT_EXTERN_CALL'       EXPORTING         i_method      = c_meth_tmex         i_object      = c_asterisk         i_view_object = c_asterisk         i_sub_view    = space         i_aktyp       = c_change         i_pronr       = ls_proj-pspnr       EXCEPTIONS         not_found     = 1         OTHERS        = 2.   ENDIF.
 * Prepare commit of WBS element dates table (PRTE)   CALL FUNCTION 'CJTR_POST_DATES'     EXCEPTIONS       sched_wrong    = 1       check_top_down = 2       OTHERS         = 3.
 * Prepare commit of network data if network exists   IF l_ntw_found = abap_true.     CALL FUNCTION 'CO_BT_PROJKN_DET'       EXPORTING         projn_pa = c_vorgabe         projn_tv = space.     CALL FUNCTION 'CO_ZV_ORDER_POST'       EXPORTING         commit_flag   = abap_false         ext_flg       = abap_true         trans_typ     = c_change         no_dialog     = abap_true       EXCEPTIONS         update_reject = 1         budget_reject = 2         OTHERS        = 3.   ENDIF.
 * Substitute internal numbers   CALL FUNCTION 'CJDW_GET_NEW_NUMBERS'.   CALL FUNCTION 'CJDT_GET_NEW_NUMBERS'.   COMMIT WORK.   sy-tcode = l_old_tcode.   sy-ucomm = l_old_ucomm.
 * Set screen 0. The function 'CJWB_PROJECT_COPY' sets screen 0200 and if this is not overwritten here a dump may occurr (screen not found)   SET SCREEN 0.   CALL FUNCTION 'LOCATION_CORRECT'     EXPORTING       bild            = space       bildgruppe      = space       kopfgruppe      = space       positionsgruppe = space       programm        = space       stackstufe      = 0       trtyp           = space.
 END-OF-SELECTION.

Function calls for adding a standard project sub-structure in SAP Project System

$
0
0

Introduction


     Last week I have created a blog post with some information on which function modules should be called in order to create a completely new operative project structure in SAP project system based on a standard project structure or on another operative structure (Function calls for standard project structure copy in SAP Project System).

 

     It turns out that SAP offers another function module in the same function group of function module “CJWB_PROJECT_COPY” that allows the insertion of an entire substructure below and already existent operative WBS element. This function module is "CJWB_SUBTREE_COPY".

 

     The function calls necessary for successfully accomplish the standard project sub-structure insertion are almost the same as the ones necessary to successfully accomplish the standard project copy. The main difference is that in the first case it is necessary to read the operative project to which the new sub-structure should be added. This is accomplished with function module "CJDW_SELECT_BASIC_DATA".

 

 

Code Samples


     Just as in last week's blog post below are two sample codes for adding a standard project sub-structure. The first is a simple code for cases in which network headers are not necessary while the latter is a more complex code for cases in which network headers are necessary. The second code sample also contains some lines for manipulating WBS element data (project responsible and applicant number) for demonstration purposes.

 

     The sample are based on the calls performed in standard transaction CJ20N (include LCNPB_MF38).

 

 

Sample 1: Simple project sub-structure without network headers


CALL FUNCTION 'CJDW_SELECT_BASIC_DATA'   EXPORTING     project                 = <-- operative project definition to which the standard project sub-structure will be added   EXCEPTIONS     entry_element_not_found = 1     missing_parameter       = 2     project_not_found       = 3     project_inact           = 4     error_message           = 98     OTHERS                  = 99.
 CALL FUNCTION 'CJWB_PROJECT_INIT_EXTERN_CALL'   EXPORTING     i_method      = 'INITIALIZE'     i_aktyp       = 'V'     i_entry_pronr = <-- operative WBS element below which the standard project sub-structure should be added   EXCEPTIONS     not_found     = 1     OTHERS        = 2.
 CALL FUNCTION 'CJWB_SUBTREE_COPY'   EXPORTING     pspnr_source     = <-- top standard WBS element of the standard project sub-structure to be added      pspnr_target     = <-- operative WBS element below which the standard project sub-structure should be added     direction        = '1'     type_of_element  = 'S'   EXCEPTIONS     wrong_call       = 1     OTHERS           = 2.
CALL FUNCTION 'CJDW_GET_NEW_NUMBERS'.
CALL FUNCTION 'CJDT_GET_NEW_NUMBERS'.

 

 

Sample 2: Project sub-structure with network headers and some data manipulation


REPORT zaddsubstr.
 DATA: lt_cjdi          TYPE TABLE OF rcj_markl.
 DATA: lt_rcj_kopnr     TYPE TABLE OF rcj_kopnr.
 DATA: ls_cjdi          LIKE LINE OF lt_cjdi.
 DATA: ls_proj          LIKE proj.
 DATA: ls_prps          LIKE prps.
 DATA: ls_tc10          LIKE tc10.
 DATA: ls_tcn41         LIKE tcn41.
 DATA: l_pspid          TYPE ps_pspid.
 DATA: l_psphi          TYPE ps_psphi.
 DATA: l_pspnr_top      TYPE prps-pspnr.
 DATA: l_old_tcode      LIKE sy-tcode.
 DATA: l_ntw_found      TYPE c LENGTH 1.
 CONSTANTS: c_tcode     TYPE tcode VALUE 'CJ20N'.
 CONSTANTS: c_vorgabe   TYPE caufvd-plart VALUE '1'.
 CONSTANTS: c_direction TYPE c LENGTH 1 VALUE '1'.
 CONSTANTS: c_meth_init TYPE fcode VALUE 'INITIALIZE'.
 CONSTANTS: c_type_elem TYPE selkz VALUE 'S'.
 CONSTANTS: c_aplid     TYPE c LENGTH 1 VALUE 'G'.
 CONSTANTS: c_change    TYPE c LENGTH 1 VALUE 'V'.
 CONSTANTS: c_asterisk  TYPE c LENGTH 1 VALUE '*'.
 CONSTANTS: c_plus      TYPE c LENGTH 1 VALUE '+'.
 CONSTANTS: c_meth_tmex TYPE fcode VALUE 'TMEX'.
 CONSTANTS: c_vernr     TYPE ps_vernr VALUE 99.
 CONSTANTS: c_astnr     TYPE ps_astnr VALUE 99.
 * Source and Target Project Definitions
 * Here the source is the standard WBS element to be added to the existing structure and the target is the operative WBS element below which a new sub structure should be added
 SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME.
 PARAMETERS: p_spspnr TYPE prpss-pspnr OBLIGATORY.
 PARAMETERS: p_tpspnr TYPE prps-pspnr OBLIGATORY.
 SELECTION-SCREEN END OF BLOCK a.
 * Select data from target WBS Element
 SELECT SINGLE psphi
 INTO l_psphi
 FROM prps
 WHERE pspnr = p_tpspnr.
 SELECT SINGLE pspid
 FROM proj
 INTO l_pspid
 WHERE pspnr = l_psphi.
 CALL FUNCTION 'CJDW_SELECT_BASIC_DATA'   EXPORTING     enqueue                 = abap_true     project                 = l_pspid   EXCEPTIONS     entry_element_not_found = 1     missing_parameter       = 2     project_not_found       = 3     project_inact           = 4     error_message           = 98     OTHERS                  = 99.
 CALL FUNCTION 'CJWB_PROJECT_INIT_EXTERN_CALL'   EXPORTING     i_method      = c_meth_init     i_aktyp       = c_change     i_entry_pronr = p_tpspnr   EXCEPTIONS     not_found     = 1     OTHERS        = 2.
 CALL FUNCTION 'CJWB_SUBTREE_COPY'   EXPORTING     pspnr_source     = p_spspnr     pspnr_target     = p_tpspnr     direction        = c_direction     type_of_element  = c_type_elem   IMPORTING     ex_first_element = l_pspnr_top   TABLES     newnumbers       = lt_rcj_kopnr     dialtab_exp      = lt_cjdi   EXCEPTIONS     wrong_call       = 1     OTHERS           = 2.
 * Only for demonstration purposes in lines from 83 to 109 the person responsible and the applicant number are changed in each new WBS element of the structure.
 LOOP AT lt_cjdi INTO ls_cjdi.   CLEAR ls_prps.   CALL FUNCTION 'CJDW_PRPS_GET'     EXPORTING       index     = ls_cjdi-index     IMPORTING       e_prps    = ls_prps     EXCEPTIONS       cancel    = 1       not_found = 2       OTHERS    = 3.   IF sy-subrc = 0.     IF ls_prps-objnr(2) = 'TM'.       ls_prps-vernr = c_vernr.       ls_prps-astnr = c_astnr.       CALL FUNCTION 'CJDW_PRPS_MODIFY'         EXPORTING           beakz     = c_change           index     = ls_cjdi-index           i_prps    = ls_prps         EXCEPTIONS           not_found = 1           posnr     = 2           OTHERS    = 3.     ENDIF.   ENDIF.
 ENDLOOP.
 * Prepare call of 'CJDT_CREATE_ACT_FOR_NEW_PRJ'
 CALL FUNCTION 'CJDW_GLOBAL_VALUES'   IMPORTING     v_proj = ls_proj.
 CALL FUNCTION 'CO_TA_TCN41_READ'   EXPORTING     plnaw      = 'N'     profidnetz = ls_proj-vprof   IMPORTING     tcn41_exp  = ls_tcn41   EXCEPTIONS     not_found  = 01.
 * The two lines of code below might also look strange at first, but they are also necessary because in includes LCJTRFJ8 and LCJTRFI2
 * somewhere inside function 'CJTR_CALL_FROM_EXTERN' the system selects some default values from some tables based on the transaction code.
 l_old_tcode = sy-tcode.
 sy-tcode = c_tcode.
 CALL FUNCTION 'CJTR_CALL_FROM_EXTERN'   EXPORTING     aplid           = c_aplid     fcode_imp       = space     proj_imp        = ls_proj     trtyp_imp       = c_change     top_imp         = 1   TABLES     cjdi_imp        = lt_cjdi   EXCEPTIONS     no_existing_psp = 1     no_pprofil      = 2     OTHERS          = 3.
 SELECT SINGLE *
 INTO ls_tc10
 FROM tc10
 WHERE tcode = c_tcode.
 * Again a strange but necessary line of code. In include LCOKOF1S somewhere inside function 'CJDT_CREATE_ACT_FOR_NEW_PRJ' the system
 * selects the default value for the order category from table t490 based on the transaction code. It would also be a possibility to
 * create a new entry in the aforementioned table with the transaction code in context (i.e. tcode of the current program)
 sy-tcode = c_tcode.
 * Function for adding network objects to the previously created project structure
 CALL FUNCTION 'CJDT_CREATE_ACT_FOR_NEW_PRJ'   EXPORTING     tc10wa      = ls_tc10     tcn41_imp   = ls_tcn41     proj_imp    = ls_proj     sched_param = space     flg_new_prj = space   EXCEPTIONS     no_entries  = 1     OTHERS      = 2.
 IF sy-subrc = 0.   l_ntw_found = abap_true.   CALL FUNCTION 'CO_IT_SET_FLG_ITAB_NEW'.   PERFORM dtab_create_complete(saplcjtr).
 ENDIF.
 CALL FUNCTION 'CNEV_05_COPY_EVOP'   EXPORTING     i_kokrs = ls_proj-vkokr.
 CALL FUNCTION 'CO_BT_PROJKN_DET'   EXPORTING     projn_pa = space     projn_tv = space.
 CALL FUNCTION 'NW_EX_SET_NETSTUFE_MAX_PROJECT'   EXPORTING     i_profidproj                   = ls_proj-profl   EXCEPTIONS     project_profile_does_not_exist = 1     network_profile_does_not_exist = 2     OTHERS                         = 3.
 * Call network scheduling if network exists
 IF l_ntw_found = abap_true.   CALL FUNCTION 'CJWB_PROJECT_INIT_EXTERN_CALL'     EXPORTING       i_method      = c_meth_tmex       i_object      = c_plus       i_view_object = c_asterisk       i_sub_view    = space       i_aktyp       = c_change       i_pronr       = l_pspnr_top     EXCEPTIONS       not_found     = 1       OTHERS        = 2.
 ENDIF.
 * Check if any required field is still empty. This function module is optional could result in disruptive pop-ups
 CALL FUNCTION 'CJWB_CHECK_BEFORE_COMMIT'   EXCEPTIONS     cancel = 1.
 * Prepare commit of WBS element dates table (PRTE)
 CALL FUNCTION 'CJTR_POST_DATES'   EXCEPTIONS     sched_wrong    = 1     check_top_down = 2     OTHERS         = 3.
 * Prepare commit of network data if network exists
 IF l_ntw_found = abap_true.   CALL FUNCTION 'CO_BT_PROJKN_DET'     EXPORTING       projn_pa = c_vorgabe       projn_tv = space.   CALL FUNCTION 'CO_ZV_ORDER_POST'     EXPORTING       commit_flag   = abap_false       ext_flg       = abap_true       trans_typ     = c_change       no_dialog     = abap_true     EXCEPTIONS       update_reject = 1       budget_reject = 2       OTHERS        = 3.
 ENDIF.
 * Substitute internal numbers
 CALL FUNCTION 'CJDW_GET_NEW_NUMBERS'.
 CALL FUNCTION 'CJDT_GET_NEW_NUMBERS'.
 COMMIT WORK.
 sy-tcode = l_old_tcode.
 END-OF-SELECTION.

Useful documents on PS SCN and Wiki

$
0
0

Project Structure (PS-ST)

 

Project Definition&WBS-element

 

Project Creation

1) Documents

Deciding on a Project Coding Mask

Project creation in MTO

Change multi-language text for project profile in one time

Authorization according to Project Profile


Validation&Substitution

1) Blog Post

Using Validations in Project System with Examples

2) Documents

Writing Validations in Project System

Validation to restrict creation of wbs upto 4th level


Status Control

1) Blog Post

Status Selection Profiles as a useful reporting functionality in SAP PS

Why the user status can't be changed backward?

 

2) Documents

Prevent release of WBS-element before Budgeting

Prevent Changing the WBS ID After Release

Status Combination Codes in WBS


Network&Activity

1) Documents

Prevent automatic Release for NWA once the Network header is Released

Project System - Standard networks variant configuration

Assembly Processing - Classification in Standard Network Determination

How to Display critical Activities clubbed together without disturbing the Activity Links in Gnatt Chart?

Shortdump RAISE_EXCEPTION occurs in transaction IW32

How to create project work center and how to assign rate to activity type

 

ACL

1) Documents

Project System - Report to replace ACL user


Handling Large Project

1) Blog Post

Do you know the new data sets added for Project editor(PSHLP20) in SAP ERP 6.0 EHP6?

 

Material

 

1) Documents

Subcontracting in PS

Asset Procurement Against Project


Technical Information

 

Tables

1) Documents

SAP PS Tables

PS Database Tables

SAP PS- Useful Tables Linkage to fetch data from various tables

Programs

1) Blog Post

Function calls for adding a standard project sub-structure in SAP Project System

Function calls for standard project structure copy in SAP Project System

2) Documents

SAP - Finding tables/BAPIs SAP component/Sub-component wise

 

Project Information System (PS-IS)

 

General Information for Hierarchy Reports

 

1) Blog Post

Remove PS Info System pop-up for Database Profile

Period mapping to calendar month.

2) Documents

Report mapping

Usefull report for PS for Project Managers/Directors

PS Reports Graphical Output Saving Default or Individual User layouts

Cost Element Value Categories for Hierarchy Reporting (PS and PM)


Additional/Customer Fields

 

1) Documents

S_alr_87013558 Addition of New Field as Value category on selection screen using report painter

Embed Custom Fields of WBS in Standard Report CJI3

 

 

Line Item Reports

 

1) Documents

Scheduling a background job: CJI3

 

Data Discrepance

 

1) Documents

Difference between the Reports :  S_ALR_87013558 & CJI3

Inconsistent of S_ALR_87013573


Project Costs (PS-COS)

 

Budget

 

1) Blog Post

Error log of ML81N

2) Documents

How to create custom message for budget availability control notifications and mail

How to exclude multiple accounts and Recovery indicators in AVAC

SAP PS - Configure Budget Availability Control

Steps to de-activate AVAC for Individual WBS element using User Status

Budget Functionality in Project System

Exclude ‘AVAC’ partially in a AVACed SAP-PS project-Option(s)

Project Budget Transferred not visible in report CJI8 (CJ34)

Settlement

1) Documents

BDC for CJIC (Automation of Line Item Settlement Rule creation)

Generate settlement rules for Network Activities


 

Easy Cost Plan

1) Documents

Customizing for Easy Cost Planning (ECP)

Easy Cost Planning (ECP) - Estimation

 

Others

1) Blog Post
Internal Orders to Project Systems

Cost Distribution from a common WBS element

Project Revenues and Earnings (PS-REV)

1) Documents

SAP Results Analysis for Beginners

Work In Process Calculation

Results Analysis - Completed Contract Method (CCM)

Time-Based Progress Analysis in Project System (Revenue Recognition)


Project Progress (PS-PRG)

 

1) Documents

Progress Analysis with SKF in PS


Project Cash Management (PS-CAF)

 

1) Blog Post

A cockpit to efficiently and flexibly manage customer-specific KPIs for projects

2) Documents

Termination with error FI057 when posting a document



Time Sheet Integration Project System (CA-TS-PS)

 

1) Documents

Improve CATS reporting for SAP PS with SQVI table join

Optimize CATS data transfer jobs with system variables


 

Other Topics

 

1) Blog Post

Aware of SAP Wiki for Project System

SAP CPM 2.0 integration with SAP PS

Architecture and functionality of extended project management tools for SAP PS

New PS Solution - SAP Commercial Project Management

SAP Project Systems- It's Future!!!

 

2) Documents

Establishing a coherent solution design in SAP ERP to serve the EC&O Business Firms (Part 1)

Establishing a coherent solution design in SAP ERP to serve the EC&O Business Firms (Part 2)

Archival - Appropriation Request

Consumer Products Industry- Technological Solution


Statistics:

Blog Posts(18)

Documents(55)

Continue updating...

Why the user status can't be changed backward?

$
0
0

You have defined your user status profile A001 like below:

 

Number        Status    Lowest     Highest

...

60                STRD       55             65

65                MIDD        60             70

70                FULL         65             75

75                ENDE        70             75

 

You assign it in certain project XT-001 and you have done some operations for the status control in the project definition, so now the user status of project definition XT-001 is FULL. But due to some reason, you need to set the user status back to MIDD for this project definition.

However, when you want to change it, the system will issue error message BS043: Status MIDD is not allowed.

 

Now you can try to find the object number of this project definition from table PROJ:

PSPNR                    OBJNR

XT-001                     PD00000221

 

Then you will find the following entries in table JEST for the project definition:

 

OBJNR        STAT     INACT CHGNR _DATAAGING

...

PD00000221 E0035      X       002           00.00.0000

PD00000221 E0060      X       001           00.00.0000

PD00000221 E0065      X       001           00.00.0000

PD00000221 E0075      X       002           00.00.0000   <<<<<<< This is status ENDE according to the entries in table TJ30 for user status definition and this status has een activated once

PD00000221 E0070                001          00.00.0000

...


So the key issue here is that per program design, the allowed status numbers are not only influenced by the current status, but also by the status that were set in the past. The F1 help for status number in customizing explains this with the following example:

*****************

Status A has status number 30 and the 'lowest status number' 10. Status B has status number 40 and the 'lowest status number' 20.

o Once status B was active for the object, only statuses with numbers 20 or higher may be activated, even if status A is currently active.

o However, if status B has never been active, statuses with status numbers 10 or higher may be activated if status A is currently active.
*****************

 

Therefore, here, you can see the status ENDE which has been activated once has the number 75 which is out of the allowed number range of status MIDD (from 60 to 70), so the status FULL can't be set to MIDD again even MIDD falls into its allowed number range (from 65 to 75).

 

It is also explained in SAP consulting note 159553.


The same also applies for any other objects using status profile, like WBS-element, network, production order and so on.

Viewing all 19 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>