Validate partner types / Restrict partner functions to specific partner types only

In ChaRM and ITSM we are using several partner functions. These partner functions can hold contact partners (external business partners, e.g. Requester), employees (internal end-users, e.g. Developer) and organizational units resp. groups (of internal organizational model, e.g. Support Team).

We want to validate that for partner functions which should hold a organizational unit only organizational units can be maintained/selected. We also want to ensure that employees are always business partners with a valid SAP user id assigned. A contact partner should always be a business partner with the role „Contact Partner“.

However this validation cannot be done in SAP CRM standard, because SAP CRM standard is not supporting the check „Organizational Unit only“.

Solution:

Please create your own partner function types using view cluster COMV_PARTNER_PFT (SM34). Note that „0005 Emloyee“ and „0007 Contact Person“ can be used as it is. But „0008 Person Responsible“, „0016 Support Team“ and „0034 Organization Responsible“ needs to be copied in customer namespace 9XXX and corrected. Please ensure following flags:

  • 0005: Not unique at Doc./Item Level, Central Person
  • 0007: Not unique at Doc./Item Level, Contact Person
  • 9008: Unique at Doc./Item Level, Central Person
  • 9016: Not unique at Doc./Item Level, Central Person + Central Person or Org.Unit
  • 9034: Unique at Doc./Item Level, Central Person + Central Person or Org.Unit

Please adjust definition of partner functions in view COMV_PARTNER_FCT (SM30) and exchange partner function type by our (new) types. Note that you are not allowed to do this for SAP standard partner functions.

Please note that it can happen that you have to adjust mapping configuration in view AIC_PARTNER_FCT + CRMV_ORLALL_BTIL as well in case you are changing partner function types. This is specific to ITSM/ChaRM only.

Please note that it can happen that you have to configure business partner relationship assignment or that you have to adjust partner determination based on business partner relationship. (Only needed if you are changing partner function type. If you are in parallel changing business partner relationship. If you are using partner determination based on business partner relationship.)

Depending on you changes, it can also happen that you have to run report CRM_INDEX_REBUILD (if order index fields get changed because of partner function type change).

Please modify function module COM_PARTNER_CHECK_MASTER_DATA:

  • Check for Central Person: Perform check only if check for „Central Person“ is activated and check for „Central Person or Org.Unit“ is deactivated.
  • Check for Central Person or Org.Unit: Perform check only if check for „Central Person“ is deactivated and check for „Central Person or Org.Unit“ is activated.
  • Check for Org.Unit (new check): Perform check only if check for „Central Person“ is activated and check for „Central Person or Org.Unit“ is activated. Here check for object type „O“ using function module BP_BUPA_GET_HROBJECT.

If you want, you can use SAP CRM Web UI message replacement feature to replace error messages COM_PARTNER-135 and COM_PARTNER-136:

  • Replace “Partner &1 (&2) is neither an employee nor an organizational unit” by “Partner &1 cannot be a &2. Please select a group.”
  • Replace “Partner &1 (&2) is not an emloyee” by “Partner &1 cannot be a &2. Please select a person.”

Remark: You can define and use your own partner function types. The given types were just examples.

Remark: This solution is not able to validate a partner function agains a business partner role „Developer“, „Tester“, „Change Manager“ etc. It is not able to validate against corresponding PFCG roles. Therefore this improvement is just a simple but very helpful improvement.

Feature Attributes (DNO_CUST04 2.0)

Introduction

Sometimes we need the capability to activate or deactivate a certain feature or to select a feature variant in context of a specific process type or project id. The already existing solution DNO_CUST04 / DNOC_USERCFG or AGS_WORK_CUSTOM are no proper solutions because here we cannot define attribute names & values and we cannot assign attributes to a project id.

Because SAP SE is not able to design and implement a proper solution, we have to do it.

Tables and Maintenance Views

Attribute Name

Table ZAT_N_C | Attribute Name

  • CLIENT | Client
  • NAME | Attribute Name

Table ZAT_N_T | Attribute Name (Text)

  • CLIENT | Client
  • LANGU | Language
  • NAME | Attribute Name
  • TEXT | Attribute Name Description

Attribute Value

Table ZAT_V_C | Attribute Value

  • CLIENT | Client
  • NAME | Attribute Name
  • VALUE | Attribute Value

Table ZAT_V_T | Attribute Value (Text)

  • CLIENT | Client
  • LANGU | Language
  • NAME | Attribute Name
  • VALUE | Attribute Value
  • TEXT | Attribute Value Description

Search Help ZAT_SH | Attribute Values (used for dynamic value list determination in customizing tables)

  •  ZAT_V_C-NAME | I+E | | Attribute Name
  • ZAT_V_C-VALUE | E | 1 | Attribute Value
  • ZAT_V_T-TEXT | | 2 | Attribute Value Description

Attribute Assignment

Table ZAT_A_C | Attribute Assignment

  • CLIENT | Client
  • PROCESS_TYPE | Process Type
  • PROJECT_ID | Project ID
  • NAME | Attribute Name
  • VALUE | Attribute Value

View ZAT_PT_V | Attribute Assignment on Process Type level (transportable)

  • CLIENT | H | Client
  • PROCESS_TYPE | | Process Type
  • PROJECT_ID | H | = “ | Project ID
  • NAME | | Attribute Name
  • VALUE | | Attribute Value
  • PROCESS_TYPE_TEXT | R | Process Type Description
  • NAME_TEXT | R | Attribute Name Description
  • VALUE_TEXT | R | Attribute Value Description

View ZAT_PT_V | Attribute Assignment on Project level (not transportable)

  • CLIENT | H | Client
  • PROCESS_TYPE | | Process Type
  • PROJECT_ID | <> “ | Project ID
  • NAME | | Attribute Name
  • VALUE | | Attribute Value
  • PROCESS_TYPE_TEXT | R | Process Type Description
  • NAME_TEXT | R | Attribute Name Description
  • VALUE_TEXT | R | Attribute Value Description

View Cluster ZAT_VC | Attributes

  • ZAT_N_C | Attribute Name
    • ZAT_V_C | Attribute Value

API (Class ZAT_CL)

CHECK_ATTRIBUTE

Purpose:

  • Check for Name and Value of an attribute

In:

  • Process Type
  • Project ID
  • Name
  • Value

Out:

  • Boolean

Content:

  • Check for attribute and context in table ZAT_A_C

GET_VALUE

Purpose:

  • Get Value of an attribute

In:

  • Process Type
  • Project ID
  • Name

Out:

  • Value

Content:

  • Read first value for given context and attribute name from table ZAT_A_C. Sort by process type (descending) and project id (descending) to enable overlapping capability.

Overlapping Capability:

  • PROCESS_TYPE | PROJECT_ID
  • X X
  • X O
  • O X
  • O O

GET_ATTRIBUTES

Purpose:

  • Get complete list of active attributes

In:

  • Process Type
  • Project ID

Out:

  • Table of Name Value pairs
  • Table of Strings

Content:

  • Read all attribute names and values for given context from table ZAT_A_C.
  • Concatenate name and value separated by slash (if string table result is requested).

GET_ATTRIBUTES_FOR_TRANSACTION

Purpose:

  • Get complete list of active attributes for a transaction

In:

  • Transaction GUID

Out:

  • Table of Name Value pairs
  • Table of Strings

Content:

  • Get process type using method cl_hf_helper=>get_proc_type_of_chng_doc.
  • Get project id using method cl_al_crm_cm_utility=>read_project_id.
  • Get result data calling method GET_ATTRIBUTES

Business Object Attribute (used by PPF actions)

SWO1 -> Enhancement of BUS2000116 (Service Process) -> Attribute „Features“

Data Reference: BDI_LOG-COMM (String table)

In:

  • Transaction Guid

Out:

  • Feature List

Content:

  • Call method GET_ATTRIBUTES_FOR_TRANSACTION

Note:

  • This attribute can be used in ppf schedule and start conditions
  • Usually we are using operator „CE“ to check for a certain name value pair („NAME/VALUE“). However pattern search (with asterisk and plus is also working).

SPRO / IMG

  • Attribute Definition (Name & Values): Define feature attributes with name and possible values.
  • Attribute Assignment on Process Type level (transportable): Assign feature attributes to process type in order to activate feature or choose feature variant for a specific process type. Note. This configuration is transportable.
  • Assign Attribute on Project level (not transportable): Assign feature attribute to project in order to activate feature or to choose feature variant. Note: This configuration is not transportable. Note: This configuration will overwrite configuration of process type level in case application wants to read the value for a specific attribute name. This configuration will be merged with configuration of process type level in case application wants to check a specific attribute (name & value) or wants to read complete list of active attributes.
  • Optionally we can add DNO_CUST04 and AGS_WORK_CUSTOM here (several existing IMG activities).

Transport-Related Checks (available with SAP Solution Manager 7.2 SPS 3+)

With SAP Solution Manager 7.2 SPS 3 there is a new assignment block available. This new assignment block is called „Transport-Related Checks“ (german: „Transportbezogene Prüfungen“). It merges the results of the Cross-System Object Lock (CSOL), Downgrade Protection (DGP), Critical Object Check (COC), ABAP Test Cockpit (ATC) and Code Inspector (CI) to one place. Additionally it provides a feature to implement Customer-Specific checks (CUC) as BADI implementation.

This is an improvement which will simplify the Change Request Management solution significantly. But …

  • The previously existing assignment blocks for DGP, COC or ATC/CI are no longer valid because they are part of the new assignment block.
  • The checks are not harmonized in one framework. That mean that DGP and COC and ATC still have their own approval feature. DGP can be approved on conflict, event and system level. COC can be approved on conflict level. ATC can be approved on issue level. CUC cannot be approved yet.
  • The checks are not harmonized in one framework. That mean that CSOL/DGP, COC, ATC/CI and CUC are triggered at different events. COC and ATC/CI are still not supported on transport import. On the other side COC and CUC are now supported on object save (analogously to CSOL).
  • The checks are not harmonized in one framework. That mean, that there is no unified customizing setting to activate these checks for specific events, landscapes, systems or clients. Only DGP has the capability to activate or deactivate checks on event, landscape, system or client level. COC and ATC/CI can be activated on system level only. CUC needs to implement an own customizing table to enable flexible configuration of the custom-specific checks.
  • When upgrading to SAP Solution Manager SPS 3, you have to run WCF_RT_COMP and WCF_CC. You also have to adjust your UI configurations for Change Documents and Change Cycles and to synchronize UI personalization. Otherwise the new assignment block will not be available or not be visible.

Official documentation:

SAP Help: Transport-Related Checks

Sorting on calculated (virtual) fields in Web UI

Assignment blocks usually contain tables. The content of these tables can be sorted by clicking the header column and selecting ascending or descending. This sorting feature is supported out of the box and managed by the Web UI framework.

However, this feature is supported only for attributes which are part of the business object layer (BOL entity level). It is not working for calculated (virtual) attributes which are implemented at the context node level only.

To support real and virtual attributes you have to implement a solution similar to

SAP CRM WebUI : Sorting custom columns (custom attributes)

  1. Use a callback method to perform the comparison.
  2. Use a method cl_crm_uiu_bp_tools=>is_a_greater_b, cl_crm_uiu_bp_tools=>is_date_a_greater_b or similar to perform the comparison on context node level instead of BOL entity level.

SAP Solution Manager 7.2 Feature Package 1 (Solman 7.2 FP 1) is coming soon

This post is just a status update to some of my earlier postings on this site. Therefore nothing special. But maybe somehow important for you.

  1. SAP Solution Manager 7.2 is general available since several months. This was already mentioned in post SolMan 7.2 SP3 is now general available!
  2. All books for SAP Solution Manager 7.2 mentioned in post SAP Solution Manager 7.2 jetzt verfügbar! are now available. However there are some additional books available soon: IT-Service-Management mit dem SAP Solution Manager (available from 26.12.2016) and Change Request Management mit dem SAP Solution Manager (available from 30.01.2017)
  3. The training WSMCAT mentioned in post SAP Solution Manager 7.2 jetzt verfügbar! was successfully started/performed. However there is an additional training available now: WSMDEL – SAP Solution Manager Deltatraining 7.1 – 7.2
  4. Support Package Stack 4 of SAP Solution Manager 7.2 (Solman 7.2 SPS 4) will be available in CW 51 of 2016 (end of December 2016) as mentioned in the SAP Support Package Stack Schedule. However this SP/SPS will contain only some error corrections and small improvements. SAP Notes: ST_720_0004 (182 Notes), BBPCRM_713_0012 (1823 Notes). Please keep in mind, that some of the contained SAP notes might already be pre-delivered by the central note for SPS 3. Please keep in mind that the central note for SPS 4 will pre-deliver some SAP notes which will be included in SPS 5 or higher regulary.
  5. Support Package Stack 5 of SAP Solution Manager 7.2 (Solman 7.2 SPS 5) will be available in CW 19 of 2017 (beginning of May 2017) as mentioned in the SAP Support Package Stack Schedule. We can expect that this Support Package Stack will be the first Feature Package of SAP Solution Manager 7.2 (Solman 7.2 FP 1) containing a lot of important improvements especially for Test Management, Process Management resp. Solution Documentation, Change Request Management and Requirements Management. SAP Notes: ST_720_0005 (not final, count of SAP Notes unknown yet), BBPCRM_713_0013 (1113 Notes), BBPCRM_713_0014 (not final, count of SAP Notes unknown yet).

Selecting a specific BADI implementation by customizing

Issue:

Sometimes we want to implement customer specific logics and to activate them by customizing context sensitively. Most famous examples are checks, calculations or conversations.

In most cases we can implement a SAP standard BADI and filter the context by development or BADI filter conditions. Every time the context changes, we have to change the BADI definition (filter criteria) or the source code of the BADI implementation (if or check statement). A consultant has no chance to change the context without help of a developer. That is very bad.

Solution for Classic BADIs:

To solve this issue, we need to use a bridge in order to connect the business context with the technical BADI implementation. This bridge is normally called „check id“, „condition id“, „filter id“ etc. It is configured in an own customizing table, used in some other customizing table (where we want to assign an implementation) and used as single-value filter id in the BADI implementation of a specific BADI definition. Sometimes we have to define such a filter id first and then create a BADI implementation including assign it to the filter id. Sometimes we don’t need to create the filter id as first step because it will automatically be created resp. added by the BADI when defining it.

This solution is working fine for classic BADIs. One prominent example is BADI EXEC_METHODCALL_PPF which is used to implement processing methods for PPF actions.

Solution for new BADIs:

New BADIs still have the feature to assign a data element (with value table) to a filter criteria. But the feature to specify the filter value as „enhanceable“ got lost.

The good news is, that there exist a very easy way to implement such an „enhanceable“ solution. For this solution we don’t need a customizing table to hold the filter id. Therefore the implementation effort is very lower.

  1. Create a new BADI definition.
  2. Set the flag „Limited Filter Use“ in the „Usability“ area.
  3. Define one filter criteria. (More are not allowed)
  4. Define and implement some BADI implementations. Each BADI implementation needs to be assigned to a filter value using the equal operator (other operators are not allowed). One BADI implementation can still be registered for more than one filter values using the OR operator.
  5. Define or extend a customizing table where you want to select a specific BADI implementation. Here you need a field which is used to store the filter value. Please create an own data element (if not done yet) to use proper names like „check id“ or „condition id“.
  6. To provide a proper value help please use search help /RTF/BADI_IMP_FILTER. Here you have to mention the name of the BADI definition in field „BADI_NAME“. Now this value help will always show all active BADI implementation with their corresponding filter values of the fixed BADI definition.
  7. Please maintain the customizing table and select the requested filter values. In program code you now have to read the customizing table based on the current business context. You have to extract the filter value, to get the BADI based on the filter value and to call the BADI with providing some context data (maybe including filter value).

That’s all. Very simple. It’s working!

Restriction: Search help /RTF/BADI_IMP_FILTER is supporting only filter values up to 4 characters. If you need more, you have to implement your own search help similar to the existing one. Just copy the search help + search help exit and exchange the data element.

That’s all. Very simple. It’s working!

SAP Customer Influence – SAP CRM, SAP Solution Manager und SAP Web Client UI

SAP SE entwickelt die SAP-Lösung ständig weiter. Um von den neuen Funktionen zu profitieren muss man nicht zwangsläufig einen Enhancement Package oder Feature Package Upgrade durchführen. Viele Improvements sind auch als SAP-Hinweise verfügbar.

SAP SE entwickelt die neuen Features nicht immer alleine im stillen Kämmerlein, sondern lässt Ihre Kunden mitentscheiden, welche Features wichtig sind und wie die Entwicklungsresourcen am besten eingesetzt werden können. Hierfür gibt es entsprechende Improvement- oder Influencing-Initiativen.

Die Aktuelle Initiative „SAP CRM 2016“ wurde am 14.09.2016 erfolgreich abgeschlossen und liefert viele neue Features für SAP CRM, SAP Solution Manager und SAP Web Client UI per SAP Note oder Support Package aus.


CRM Cross Functions 2011

CRM Service 2011

CRM IT Service Management 2011

SAP CRM 2013

CRM User Experience Webclient UI & BCM 2014

SCN: CRM Web Client Improvements – beneficial also in SAP Solution Manager 7.1

SAP CRM 2015

SAP CRM for Utilities 2015

SAP CRM 2016

SAP for Utilities (IS-U & CRM) 2016

SCN Wiki: CRM Web Client UI Framework -> New Features (Cancel Search, Auto Save, Header System Information, Timeout warning popup and countdown clock, …)

SAP CRM 2017 (Geplant für das kommende Jahr.)


SAP Improvement Finder

SAP Idea Place

SAP Performance Analysis

Traces:

  • ABAP: SAT – SAP ABAP Trace
  • SQL: ST01/ST05 – SAP SQL Trace
  • JOB: ST13 (BACKGROUND_JOB_ANALYSIS) – Background Job Analysis
  • AUTH: ST01 – SAP Authority Trace

Hinweis: Nur für konkrete Sachverhalte geeignet. Explizites Aktivieren und Deaktivierung notwendig. Hat Auswirkungen auf die Performance.

Logging:

  • ABAP: /SDF/UPL_CONTROL – Usage & Procedure Logging
  • ABAP: [SCOV – SAP Coverage Analyzer]
  • SQL: SQLM – SQL Monitor
  • AUTH: STAUTHTRACE – System Trace for Authority Checks

Hinweis: Sollte immer angeschaltet sein. Auch in der Produktion. Keine signifikanten Performanceauswirkungen.

Mein Favorit:

SAT erspart einem stundenlanges Debugging. Gerade bei tief verschachtelten pseudo-objektorientierten Entwicklungen mit vielen parallelen oder nachgelagerten Prozessen. Wichtig ist zuvor eine eigene Variante anzulegen und die Agregation auszuschalten. Denn nur dann erhält man den kompletten Aufrufpfad. Um alle parallelen Prozesse zu erwischen, sollte auf Userebene (und nicht Prozess- oder Transaktionsebene) getract werden.

 

Using IBase Components in Change Requests

Requirement

We want to display and select IBase Components in Change Requests.

Challenge

In SAP Standard IBase Components are not supported on CR level, only on CD Header level and CR Item Level (Scope Assignment Block). Therefore there is not only a UI configuration to do.

Solution

We can reuse the solution already implemented for Change Documents.

However, this is a dirty solution, because it contains one modification, one modified enhancement and two copy-past source code clones.

This is acceptable as temporary solution only till SAP will implement it in Standard. Let’s hope it will happen soon.

Steps

  1. Exchange Context Node Controller of AIC_CMCR_H/AICCMCRHeaderEF-BTREFOBJMAIN from CL_SRQM_H_BTREFOBJ_CN to CL_AIC_CMCD_IBASE_CN. Use the enhancement technique on context node controller level to do that. (We have to do it manually because of technical reasons).
  2. Generalize context node controller CL_AIC_CMCD_IBASE_CN to work with CDs and CRs. Therefore correct definition of attribute MR_VIEW_CONTROLLER from CL_AIC_CMCD_AICCMCDHEADER_IMPL to CL_SRQM_RFC_REQUESTFORCH0_IMPL (or OBJECT) by modification.
  3. Add component usage CUSolmanIbaseValueHelp to AIC_CMCR_H and implement view controller methods OP_FINDIBASECOMPONENT and EH_ONSELIBASECOMPONENT analogous to AIC_CMCD_H by copy & past.
  4. Configure Status Dependent Input Readiness (SPRO -> … -> Adjust UI objects by User Status) for UI element „IBASE_COMPONENT“ to make fields editable at the right time (usually analogous to Project ID).
  5. Configure UI and make fields //BTREFOBJMAIN/IBINSTANCE + //BTREFOBJMAIN/IBINSTANCEDESC visible and editable.
  6. Copy Control is usually working fine because the hidden fields are already used in Standard CR to store IBase Component copied from preceeding Incident.
  7. Steps 1 – 5 are needed for editability and selectability. For display only step 5 is sufficient.

Using Substatus / Status Reason / Closure Codes for ChaRM

SAP Solution Manager IT Service Management is using Substatus or Status Reason to give end-users the possibility to specify why the current status is choosen. This is a very good feature which can be used for initial status (Why transaction is created?) final status (Why transaction is closed/withdrawn?), approval and confirmation status (Why it is approved/confirmed/rejected?). The status „Sucessfully Tested“ or „Back to Development“ is also a confirmation status in this meaning.

We don’t want to discuss here, why SAP SE introduced a new concept of substatus / status reason which was already existing in SAP CRM long time ago and which is heavily used by leads, opportunities, … This is another topic which is out of scope of this post.

In this post I want to tell you how to enable this feature for Change Request Management, because it is helpful for ChaRM as well.

  1. Configuration of substatus can be done like for ITSM. No additional customizing table is needed.
  2. Substatus is available as field /AICRM/REASON_ID of table CRMD_SERVICE_H. This is true for ITSM and ChaRM. No field enhancement is needed. If we want to activate processing/change logging for this field we just have to configure it using these technical information.
  3. Substatus is available as field //BTADMINH/EXT./AICRM/REASON_ID in UI configuration of details form. This is true for ITSM and ChaRM (CR and CD). We just need to make the field visible. However ChaRM is not supporting any value help or input readiness check. This needs to be implemented (see below).
  4. Substatus is available as Search Criteria and Search Result List Field. This is true for ITSM and ChaRM (CR and CD). We just need to make the field visible. However ITSM and ChaRM are not supporting any value help (search criteria) and key to text conversion (result list field). This needs to be implemented (see below).
  5. We still have the issue, that the status change is performed by ppf actions in ChaRM. Therefore we have no chance to maintain the substatus / status reason /closure code on change to a final status, because the transaction is final after status change. Only a popup solution can help here which will need a medium-size development (see linked document).

Full Documentation: ChaRM Substatus.pdf (2.3 MiB)


To enable value help and input readiness check, we need to implement all relevant getter and setter methods of AIC_CMCR_H/AICCMCRHeaderEF-BTADMINH./AICRM/REASON_ID and AIC_CMCD_H/AICCMCDHeaderEF-BTADMINH./AICRM/REASON_ID. To avoid copy past of source code we can alternatively change the inheritance hierarchy. 1. Enhance context node controller of AIC_CMCR_H/AICCMCRHeaderEF-BTADMINH and AIC_CMCD_H/AICCMCDHeaderEF-BTADMINH. 2. Exchange super class CL_SRQM_H_BTADMINH_CN by CL_AIC_INCI_INCIDENTHEADE_CN03. 3. Modify or replace code of method CL_AIC_INCI_INCIDENTHEADE_CN03->IF_BSP_MODEL~INIT and catch exception if cast of owner fails.

 METHOD if_bsp_model~init.

    CALL METHOD super->if_bsp_model~init
    EXPORTING
      ID    = ID
      owner = owner.

*We are reusing BTBadminH Context Node of Incident for Change Request and Documents.
*In this case the cast will fail because of the wrong view controller class.
*We dont need a working solution in this case. Therefore we just need to catch the exception.
    CATCH SYSTEM-EXCEPTIONS MOVE_CAST_ERROR = 1.
    mo_controller ?= owner.
    ENDCATCH.

    EXIT. "needed if this is an enhancement at the beginning of the method instead of a modification.

  ENDMETHOD.

To implement a value help for the Status Reason search criteria, we have to implement method GET_V_/AICRM_REASON_ID for view controller of AIC_CMCD_S/SearchQueryView and AI_CMCR_S/CMSR with following content:

METHOD get_v_/aicrm/reason_id.

  DATA:
    lt_list_proc_type  TYPE crmt_process_type_tab,
    lt_range_proc_type TYPE RANGE OF crmt_process_type,
    ls_range_proc_type LIKE LINE OF lt_range_proc_type.

  FIELD-SYMBOLS:
     LIKE LINE OF lt_list_proc_type.


* Get all relevant process types (see value help getter for process_type)
  me->get_all_proc_type( IMPORTING et_proc_type = lt_list_proc_type  ).
*  lt_list_proc_type = me->get_all_proc_type( ).

*Build select option.
  LOOP AT lt_list_proc_type ASSIGNING .
    ls_range_proc_type-sign = 'I'.
    ls_range_proc_type-option = 'EQ'.
    ls_range_proc_type-low = .
    APPEND ls_range_proc_type TO lt_range_proc_type.
  ENDLOOP.

*Get all possible entries.
  SELECT DISTINCT reason_id AS key txt30 AS value
    INTO CORRESPONDING FIELDS OF TABLE cs_result-ddlb_options
    FROM aic_stat_reasont
   WHERE spras = sy-langu AND
         reason_id IN ( SELECT reason_id
                          FROM aic_stat_reason
                         WHERE user_stat_proc IN ( SELECT user_stat_proc
                                                     FROM crmc_proc_type
                                                    WHERE process_type IN lt_range_proc_type ) )
   ORDER BY reason_id.

*Add empty line.
  APPEND INITIAL LINE TO cs_result-ddlb_options.

ENDMETHOD.

To implement a key to text conversion for the Status Reason result list field, we have to implement method GET_/AICRM_REASON_ID for context node controller of AIC_CMCD_S/SearchQueryView-BTADMINH and AI_CMCR_S/CMSR-BTADMINH with following content:

METHOD get_/aicrm/reason_id.

  DATA: lr_current TYPE REF TO  if_bol_bo_property_access,
        lv_key     TYPE         aic_reasonid.

*Get entity.
  IF iterator IS BOUND.
    lr_current = iterator->get_current( ).
  ELSE.
    lr_current = collection_wrapper->get_current( ).
  ENDIF.

*Get key.
  lv_key = lr_current->get_property_as_string( iv_attr_name = '/AICRM/REASON_ID' ).

*use key as value if text cannot be found.
  value = lv_key.

*Try to find text.
  SELECT SINGLE txt30
    INTO value
    FROM aic_stat_reasont
    WHERE reason_id = lv_key AND
          spras = sy-langu.

ENDMETHOD.

Full Documentation: ChaRM Substatus.pdf (2.3 MiB)

Automated creation of follow-up transactions. How to use and enhance COPY_DOCUMENT?

To create follow-up documents automatically from a business transaction we can use a ppf action with method COPY_DOCUMENT.

We have to use the parameter „process_typ“ to specify to transaction type.

The title of the ppf action will be taken over as description of the follow-up transaction. There is no way to deactivate this feature except the title will be left empty. Then it depends on the copy control what will happen.

The long text of the ppf action can be transferred to a text type of the follow-up document. If we want to do this, we just need to configure and use a text determination access sequences using function module CRM_REFERENCE_TEXT_GET (ref object and ref text type can be left empty in customizing).

If we want to set some more values (i.e. priority, category, …), we have to put these static values in the ppf action container like parameter process_type. We also have to enhance method copy_document of class cl_action_execute to transfer these data to the follow-up document. There is currently no standard solution to default/transfer some data to the follow-up document.

If we want to set a partner for a specific partner function we should do it using partner determination or BRF+ based on a field which is already defaulted using solution mentioned above (i.e. category). We should never try to default a partner by the follow-up creation routine itself because the partner number will be different in different systems and the assignment rule might change very often.

The copy control is per default active for the follow-up creation, which means that data can be overtaken from the current transaction to the follow-up transaction.

Unfortunately there is currently no way to create a follow-up based on a template transaction. Only SAP CRM Service is using such a feature for Service Plans (we can have a look at ppf action method CREATE_ORDER_SRVPLAN and transaction CRMD_SERV_CYCLE). However, this solution is specific for this use case only and cannot be used for other use cases as well.

For a lot of use cases COPY_DOCUMENT (with the mentioned extensions) will be sufficient to implement the requirements. However there exist some other ppf action methods which handles items and document flow in a different way. If we want to use/copy items we should try COPY_DEF_ITEMS (create follow-up and copy items), COPY_ITEM_LOCAL (create/copy items in a transaction locally) and COPY_ITEM_TO_TASK (create follow-up transaction with current item as predecessor).

SolMan 7.2 SP3 is now general available!

  1. Der SAP Solution Manager 7.2 SP3 ist seit 15.08.2016 frei verfügbar (general availability). Der Ramp-up ist beendet!
  2. Die Wartung für den SAP Solution Manager 7.2 endet laut PAM am 31.12.2025. Damit hält sich der SAP Solution Manager nun endlich ebenfalls an die allgemeine Wartungszusage der SAP SE.
  3. Der SAP Solution Manager 7.2 basiert auf SAP Netweaver 7.4. Die Wartung für SAP Netweaver 7.4 endet am 31.12.2020. (Klingt komisch. Ist aber so. 😉

Verweise:

SAP Solution Manager 7.2 jetzt verfügbar!

Die ersten Schulungen und Bücher zum neuen SAP Solution Manager 7.2 sind jetzt verfügbar. Das Release selbst wird in wenigen Wochen ebenfalls da sein.

Werden Sie jetzt aktiv und beginnen noch heute mit den Vorbereitungen. Die Zeit ist knapp und der Mehrwert für Ihr Unternehmen hoch.

Ich verate Ihnen hier, wie Sie sich am besten vorbereiten und damit ganz entspannt in das neue SAP Solution Manager 7.2 Zeitalter starten können.


  1. Die erste offizielle SAP-Schulung zum neuen Release steht nun bereit. Thematisiert wird hier die wichtigste Neuerung im SAP Solution Manager 7.2 sowie die kritischste Aktivität beim Upgrade von 7.1 auf 7.2. Starten wird die Schulung im September 2016 – zeitgleich mit der generellen Verfügbarkeit des SAP Solution Manager 7.2. Anmeldungen für diese quasi-obligatorische Schulung sind ab sofort möglich‎‎.‎

    WSMCAT Content Aktivierung und Process Management für SAP Solution Manager 7.2
  2. Das erste Buch zum SAP Solution Manager 7.2 ist bereits verfügbar. Mehrere weitere SAP-Press-Publikationen zum neuen Release stehen schon im Regal und warten auf die finale Freigabe Ende September. Bestellungen bzw. Vorbestellungen für diese quasi-obligatorischen Publikationen sind bereits möglich.‎

    SAP Solution Manager for SAP S/4HANA

    SAP Solution Manager für SAP S/4HANA

    Upgrading to SAP Solution Manager 7.2‎
  3. Der SAP Solution Manager 7.2 SP2 befindet sich seit April im Ramp-up und ist dort für alle Ramp-up-Kunden und -Partner verfügbar. Das darauf folgende Support Package 3 wird dann für alle SAP-Kunden voraussichtlich ab September 2016 ‎verfügbar sein.

    SAP Solution Manager 7.2 Help‎

Die genannten Schulungen und Publikationen bilden den idealen zeitlichen und inhaltlichen Startpunkt für den 7.2-Upgrade, den wir alle im Zeitraum Herbst 2016 bis Sommer 2017 starten werden – weil wir es wollen, können, dürfen und müssen.


Wir wollen upgraden, weil wir die neuen Features richtig toll finden und dringend benötigten!‎

Wir können upgraden, weil wir uns u.a. durch Lesen der Bücher und Teilnahme an den Schulungen / Workshops bestens vorbereitet haben!

Wir dürfen upgraden, sobald SAP SE den SAP Solution Manager 7.2 allgemein verfügbar macht‎!

Wir müssen upgraden, weil der aktuelle SAP Solution Manager 7.1 am 31.12.2017 abgeschaltet wird!

SAP Solution Manager ‎7.2 Change Request Management Upgrade Leitfaden (ChaRM 7.2 Upgrade Guide)

Der SAP Solution Manager 7.2 ist aktuell im Ramp-Up und in Kürze generell verfügbar. SAP-Kunden haben dann ein Jahr Zeit um ihren SAP Solution Manager 7.1 zu upgraden, da die Wartung für das Release 7.1 im Dezember 2017 enden wird.

Ich habe nun alle mir bekannten manuellen Upgrade-Aktivitäten für ChaRM 7.2 zusammengetragen und möchte mein Wissen und meine Erfahrungen gern mit Ihnen teilen und diskutieren.

Bitte nutzen Sie diesen Leitfaden als Ergänzung zu SOLMAN_SETUP und allen anderen offiziellen Upgrade-Dokumenten.

Ich wünsche Ihnen viel Spaß beim Lesen, Nachdenken und Umsetzen. Wenn Sie Fragen haben, den einen oder anderen Punkt diskutieren möchten oder Fehler bzw. Lücken entdecken, dann melden Sie sich bitte bei mir, damit ich diesen Blog-Beitrag kontinuierlich optimieren und vervollständigen kann. Im Namen aller anderen SAP-Kunden danke ich Ihnen vielmals für Ihre Mithilfe!


The IT Service Management and Change Management processes have been enhanced with many new functionalities. And the good message is, that we kept all existing frameworks and features from the release 7.1. The upgrade for customers for ITSM and CHARM processes will have a low impact on existing solutions but the new features will bring additional values. (SCN: SAP Solution Manager Wiki -> ITSM and ChaRM in SAP Solution Manager 7.2)

Laut SAP SE ist der Umstieg von SAP Solution Manager 7.1 zu 7.2 aus Sicht von ITSM und ChaRM ganz leicht‎. Alles klappt wie zuvor. Lediglich die neuen Features müssen bei Bedarf konfiguriert und aktiviert werden.

Keine Migration?

Genau!

Irgendeine Voraussetzung?

Voraussetzung: Wir müssen komplett im Standard sein, ohne Ausnahme. Das gilt neben Entwicklung auch für Stammdaten, Berechtigungen, Customizing und UI-Konfiguration.

Sind wir nicht.

Na dann‎: Willkommen im Klub!

Und nun?

Nun müssen wir eben doch (manuell) migrieren.

Customizing:

  • Einige Customizingeinstellungen (z.B. Downgrade-Protection, Importstrategie / Statusabhängiger Import, Kopiersteuerung, …) müssen korrigiert / überführt werden, da hier inkompatible Änderungen‎ vorgenommen wurden.

UI-Konfiguration:

  • Einige Felder (z.B. Projekt-ID) müssen entfernt und andere Felder (z.B. Change-Control-Landschaft und Branch) hinzugefügt werden.
  • Der Zuordnungsblock für die Lösungsdokumentation muss eingeblendet werden.
  • Im Gegenzug müssen die Zuordnungsblöcke für Projekte, Lösungen und Dokumente entfernt werden.
  • Die Benutzerrolle SOLMANPRO wurde angepasst. Einige Customizingeinträge wurden entfernt andere sind hinzugekommen. Falls eine kundeneigene Version erstellt wurde sind die Änderungen manuell abzugleichen.

Personalisierung:

  • Vorhandene Web-UI-Personalisierungen sind zu prüfen und ggf. mittels Transaktion WCF_CC abzugleichen, da diese nun möglicherweise inkompatibel zu geänderten UI-Konfigurationen sind. Ohne diese Korrektur sind für einige Anwender die neuen Felder / Zuordnungsblöcke ggf. nicht eingeblendet.
  • Da die Reportinganwendung /TMWFLOW/REPORTINGN in das Administrations-Cockpit überführt wurde, sind ggf. erstellte anwenderspezifische oder -übergreifende Selektions- und ALV-Varianten in die neue Fiori-Anwendung zu übertragen.
  • Das gleiche gilt auch für die anderen obsoleten Administrations- und Reporting-Anwendungen.

Berechtigungen:

  • Die Berechtigungsrollen müssen angepasst angepasst werden, da neue Vorgangsarten für Änderungszyklen und neue Berechtigungsobjekte für die neue Lösungsdokumentation eingeführt wurden.

Jobs:

  • Da im Zuge des Upgrades alle Änderungszyklen und Aufgabenpläne geschlossen und neu angelegt werden, müssen alle eingeplanten Aufgabenplanaufgaben (z.B. Importe) neu eingeplant werden.
  • Da der Report für untertägige Importe und die Reports für die Verteilung von Dringenden Transporten abgeschafft wurden, müssen die entsprechenden Aufgabenplanaufgaben genutzt und als Jobs eingeplant werden.

Stammdaten:

  • Logische Komponentengruppen und Change-Control-Landschaften müssen definiert werden.
  • Geschäftsprozesse müssen mittels Content-Aktivierung in die Lösungsdokumentation übernommen werden.
  • ‎Projekte müssen bei Bedarf nach ITPPM überführt werden.

Bewegungsdaten:

  • A‎uf die Problematik für Alt-Vorgänge mit Projekten, welche nicht Teil der Content-Aktivierung sind, bin ich in einem anderen Beitrag bereits eingegangen. Demnach werden ‎alte Vorgänge nach dem Upgrade ggf. unvollständig im SAP Web Client UI angezeigt, da die Zuordnung der Projekte, Lösungen, Geschäftsprozesse und Dokumente im Web UI nicht mehr sichtbar sein wird.

Entwicklung:

  • Es gibt keine Projekte mehr, dafür logische Komponentengruppen, Branches und Change-Control-Landschaften.
  • Die Findung des Änderungszyklus pro Change-Control-Landschaft ist nicht mehr eindeutig, da nun auch die Zuordnung eines Changes zu zukünftigen Zyklen möglich ist.
  • Der Aufgabenplan wird für den Folgeänderungszyklus wiederverwendet. Die Zuordnung zwischen Änderungszyklus und Aufgabenplan ist folglich nicht mehr eineindeutig.
  • Änderungsdokumente „Dringende Änderung“, „Normale Änderung“ und „Administrative Änderung“ sind wahlweise auch ohne Aufgabenplan/Transportaufträge nutzbar.
  • Ein Änderungsantrag ist mit einem Änderungszyklus verknüpft. Bisher galt galt das nur für Änderungsdokumente.
  • Der Vorgänger eines Änderungsdokumentes kann neben dem Änderungsantrag auch ein IT-Requirement sein.
  • Die SMSY wird abgeschafft (Funktionsbausteine und Tabellen werden nicht mehr synchronisiert/unterstützt). Zum Lesen von RFC-Destinationen und Systeminformationen ist die API der LMDB zu nutzen. Zum Beispiel ist deshalb ab sofort der Funktionsbaustein /TMWFLOW/GET_RFC anstelle von /TMWFLOW/GET_RFC_DEST zu nutzen. Achtung: Der obsolete Funktionsbaustein existiert weiterhin, liefert aber stets eine Exception.
  • Grundlegende Tabellen wurden ersetzt: Transportaufträge werden nun in der Tabelle /TMWFLOW/TRORD_N statt bisher /TMWFLOW/TRORDHC gehalten. Transportstatusinformationen werden nun in der Tabelle /TMWFLOW/TRACK_N statt bisher /TMWFLOW/TRACK + /TMWFLOW/TRORDEC gehalten. Retrofitinformationen werden nun in der Tabelle /TMWFLOW/RFITCT statt bisher /TMWFLOW/RFITC gehalten. Folglich sind alle kundeneigenen Anwendungen mit direkten Tabellenzugriffen (i.R. Select-Zugriffe in Reportinganwendungen) anzupassen. Achtung: Die alten Tabellen existieren weiterhin und erzeugen folglich keinen Syntaxfehler.

Um es kurz zu machen: Alle Kundeentwicklungen müssen getestet und sehr wahrscheinlich angepasst werden.

Modifikationen und Erweiterungen:

  • Im Rahmen des Upgrades sind Dictionary-Modifikationen, Quellcode-Modifikationen und Erweiterungen abzugleichen (SPDD, SPAU, SPAU_ENH).
  • Zusätzlich sind auch WebUI-Erweiterungen (Repository + HTML) und WebUI-Konfigurationen abzugleichen (WCF_CC, WCF_RT_COMP).
  • Die bei Web-UI-Erweiterungen aufgebaute Klassenvererbungshiercharchie für die Controller-Klassen ist zu prüfen und anzupassen, da SAP SE ggf. die Kontrollerklassen für Windows, Views oder Kontextknoten ausgetauscht oder inkompatibel geändert hat.

Ist die Liste vollständig?

Nein.

Die genannte Punkte sind nur die „Big Rocks“‎. Im Detail wird es viele weiteren Punkte geben. Beispiel: Wenn es neue Vorgangsarten für die Änderungszyklen gibt, dann hat dies neben CRM_ORD_PR (Vorgangssichtbarkeit/-änderbarkeit) auch Auswirkungen auf B_USERSTAT (Statuswechsel) und CRM_TXT_ID (Textsichtbarkeit/-pflege). Wenn es einen neuen Zuordnungsblock „Lösungsdokumentation“ gibt, dann hat der auch „Statusabhängige Drucktasten“, welche entsprechend zu konfigurieren sind. Und wenn dem so ist, dann muss auch das Berechtigungsobjekt SM_FIELD entsprechend ausgeprägt werden.

Gibt es von SAP SE einen Upgrade-Leitfaden?

Ja: SUM + SOLMAN_SETUP.

Enthält der auch die hier beschriebenen manuellen Migrationstätigkeiten?

Nein.

Gibt es noch andere offizielle Hilfsmittel?

Ja…bitte schauen Sie zusätzlich auch auf folgenden Seiten vorbei:

SAP Solution Manager 7.2 – Noch gar nicht da und schon veraltet

Beobachtung: Seit 20.01.2016 ist das Enhancement Package 4 für SAP CRM 7.0 offiziell verfügbar. Das SAP CRM 7.04 wird bis Ende 2025 supported. Es ist davon auszugehen, dass es bis dahin noch einige weitere Enhancement Packages geben wird. Aktuell gibt es ungefähr aller zwei Jahre ein neues Enhancement Package für SAP CRM 7.0.

Schlussfolgerung: Gemäß aktueller SAP-Philosophie werden ab 20.01.2016 neue Funktionen und Funktionsverbesserungen nur noch in Form von Feature Packages für SAP CRM 7.04 ausgeliefert. Zukünftige Support Packages für Enhancement Package 1, 2 und 3 werden bis auf wenige Ausnahmen ausschließlich Fehlerbeseitigungen enthalten.


Beobachtung: Der SAP Solution Manager 7.2 ist aktuell noch im Ramp-Up und wird spätestens zum Jahresende 2016 offiziell verfügbar sein. Kunden haben dann genau ein Jahr Zeit für einen Releasewechsel von 7.1 nach 7.2, bevor Support und Wartung des aktuellen SAP Solution Manager 7.1 zum Jahresende 2017 eingestellt wird. Der SAP Solution Manager 7.2 basiert auf SAP CRM 7.03 und nicht auf dem aktuellen 7.04.

Schlussfolgerung: Folglich wird das passieren, was in der Vergangenheit immer wieder ‎für Unmut bei den Anwendern gesorgt hat: Der SAP Solution Manager 7.2 ist veraltet, verschläft aktuelle Trends, wir müssen sehr lange auf neue Funktionen oder Funktionsverbesserungen warten und der nächste Releasewechsel wird erneut viele Verbesserungen aber eben auch hohen Implementierungs- und Schulungsaufwand mit sich bringen.


Überraschung: Solange brauchen wir auf SAP Solution Manager 7.3 (oder 7.5 wegen NW 7.50? oder 8.0 weil großer Sprung?) allerdings gar nicht warten. Denn Support und ‎Wartung für SAP Solution Manager 7.2 wird nach aktueller Planung bereits Ende 2020 wieder eingestellt werden. Ursache hierfür ist der Java Stack.

Weiterführende Informationen:
Product Availability Matrix: SAP Solution Manager 7.2
Product Availability Matrix: SAP CRM 7.04
SAP Note: 1648480 – Maintenance for SAP Business Suite 7 Software
SCN: Product Release Strategy Webcast Notes – All About Feature Packages

How to work with timestamp attributes in SAP Web Client UI?

It happens very often, that we want to use additional TIMESTAMPs in context of Business Transaction Management.

If we are introducing additional date types (appointments) via configuration, the SAP CRM standard is managing the display, storage and data conversion. We just need to add context nodes for it to our UI components. We should have a look at already existing date/time context nodes and reuse the context node classes used here to ensure standard-like behaviour (virtual fields, value helps, data conversion, …).

If we decide to create a field enhancement using Application Enhancement Tool (AET), we dont need an additional context node since we are using context node BTAdminH or BTCustomerH. However, we will now face the challenge, that there is no proper value help available for timestamps. Therefore we need to create two additional virtual attributes for DATE and TIME which are referring to the TIMESTAMP attribute.

(Der Quellcode wird später hier noch ergänzt….)

How to calculate virtual fields for table enhancements created with AET?

All tables, structures, function modules and classes will be generated automatically, if you create a table enhancement using Application Enhancement Tool (AET). However, sometimes you might want to calculate some fields instead of storing it in database.

The AET is not supporting such virtual fields. Therefore you have to implement it manually.

Solution 1: Create an additional attribute in the context node of the generated UI component and place a calculation in the getter method. Deactivate coding of setter and i-getter method.

Solution 2: Enhance structures ?_WORK, ?_ATTR and ?_BOL_ATTR by an additional attribute. Place your calculation at the end of method GET_DETAIL of class CL_AXT_TABLES_API (define and use a table name dependent BADI for high quality solution). Add a value attribute with the same name to context node of the generated UI component. Don’t change the generated code here since it will read the data from BOL/GenIL as wanted.

Conclusion 1: Development should be restricted to a minimum. Whenever source code can be avoided, it should be avoided. Therefore solution 1 is preferred from a supportability perspective, if there are only few virtual fields required.

Conclusion 2: Business logic should be placed in API or BOL/GenIL layer instead of UI layer to be reused UI independently. Therefore solution 2 is preferred from an architecture perspective, if several virtual fields are required or if a high quality and high flexible solution is requested.

SAP Solution Manager 7.2 Requirements Management

Das Requirements Management im SAP Solution Manager 7.2 ist nicht durchdacht, nicht ausgereift und folglich für die produktive Nutzung nicht geeignet. (Persönliche Einschätzung von Peter Weigel vom 24.05.2016)

Warum das? Das erfahren Sie hier:

Change Requests sind Anträge für Änderungen Ihrer Business- und IT-Lösung. Solche Änderungsanträge werden nach ITIL niemals direkt angelegt sondern entstehen immer aus einer Störung, einem Problem, einem Service Request oder einem Requirement.

Mit Requirements können Anforderungen erfasst, verwaltet, Abhängigkeiten definiert und ausgewertet werden. Die konkrete Implementierung ist nicht Gegenstand des Requirements Managements, kann aber durch Erzeugung eines Änderungsantrages getriggert werden. Mit den Change Requests werden konkrete technische Lösungen implementiert (und validiert). Da die implementierten technischen Lösungen letztendlich die eingangs formulierten Geschäftsanforderungen befriedigen müssen, dienen die Requirements gemäß V-Modell als wesentliche Grundlage für die Durchführung von Integrations- und Abnahmetests.

SAP Solution Manager 7.1:

Eine solche Requirements Management Funktionalität fehlte im SAP Solution Manager 7.1. Da nicht jeder Kunde Änderungsanträge zur Verwaltung von Anforderungen missbrauchen wollte (Kleine Lösung) aber auch nicht jeder Kunde in ein vollumfängliches Requirements Management von HP ALM/QC investieren möchte (Große Lösung), wurde von SAP Consulting ein Requirements Management Add-on entwickelt, das genau die Lücke schließt (Mittelgroße Lösung).

Informationen finden Sie hier:

https://support.sap.com/content/dam/library/SAP%20Support%20Portal/support-programs-services/solution-manager/consulting/Requirements-Management/Benutzerhandbuch-deutsch.pdf

SAP Solution Manager 7.2:

Im SAP Solution Manager 7.2 ist ein Requirements Management nun enthalten. Folglich ist das Add-on von SAP Consulting nicht mehr erforderlich. Sollte man meinen. Doch weit gefehlt. Während das Add-on durchdacht, ausgereift, ITIL-konform und mit vielen Zusatzfunktionalitäten ausgestattet wurde, ist die SAP Solution Manager 7.2 Lösung einfach nur sch…. „schön“ :-).

Folgende Hauptkritikpunkte habe ich identifiziert:

  1. Die Freigabe zur Implementierung im Business Requirement ist ein völlig überflüssiger Schritt, da der Fachbereich in der Regel bereits in die Genehmigung des Change Requests als CAB-Mitglied involviert ist (spezieller Schritt in der Approval Procedure)
  2. Das IT Requirements ist eine völlig überflüssige Alternative zum Change Request.
  3. Das Requirement Management wird von SAP SE völlig unnötig als eigenständiger Prozess positioniert, in Wahrheit ist das „Business Requirement“ eindeutig dem IT Service Management und das „IT Requirement“ eindeutig dem Change Request Management zuordenbar.
  4. Ansonsten sind natürlich geringfügige Unterschiede im Statusfluss erkennbar, die Bezeichnungen sind mal hier und mal da besser. Mal fehlt hier ein Zwischenstatus, mal dort.
  5. Die Detailfunktionen habe ich nicht im Detail prüfen können. Es scheint aber so, dass in der SAP Solution Manager 7.2 Lösung viele wesentliche Features (z.B. Zerlegen und Zusammenfassen von Requirements) fehlen. Auch scheinen durch Einführung des IT Requirements als Change-Request-Ersatz viele existierende ChaRM-Features verloren gegangen zu sein (z.B. Nutzung von Approval Management, Unterprozess „Scope Extension“.)
  6. Die Präsentationen von SAP SE sind nicht optimal. Wenn man nicht sehr genau aufpasst in welchem Prozess (Business Requirement oder IT Requirement) man sich gerade befindet und wenn man noch nicht ganz verstanden, wie die beiden Prozesse zusammenspielen (BR erzeugt ITR. ITR kommuniziert mit BR. BR kommuniziert mit ITR.), hat man keine Chance die Lösung zu verstehen.

Mein Tipp:

Warten Sie mit der Implementierung auf jeden Fall bis SAP SE das Business Requirement optimiert (1+4+5) und nahtlos mit dem Change Request statt dem IT Requirement verbunden hat (2). Nur dann macht die Einführung und Nutzung des Requirements Magements überhaupt Sinn. Falls Sie nicht warten können oder zusätzliche Features benötigen oder ganz allgemein eine sehr gute Lösung haben wollen, dann nehmen Sie lieber das SAP Solution Manager 7.1 Requirements Management Add-on, das es übrigens auch für bzw. im SAP Solution Manager 7.2 noch geben wird.

Statusfluss:

SAP Solution Manager 7.2 Business Requirement

  • Define
  • Submitted for Validation
  • Being Checked
  • Handed Over to IT (-> ITR. Define)
  • Committed by IT (<- ITR. Approved)
  • Committed (-> ITR. Submitted for Implementation)
  • Implemented (<- ITR. Implemented)
  • Completed (<-> ITR. Completed)
  • Postponed by IT (<-> ITR. Postponed)
  • Postponed
  • Rejected by IT (<-> ITR. Rejected)
  • Rejected

Diese Genehmigung „Committed by IT -> Committed“ durch den Fachbereich ist überflüssig, da der Fachbereich einen eigenen Schritt in der Approval Procedure des Change Requests besitzt und dort bereits genehmigt hat.

SAP Solution Manager 7.2 IT Requirement

  • Define (<- BR. Handed Over to IT)
  • Submitted for Validation
  • Being Checked
  • Submitted for Approval
  • Approved (-> BR. Committed by IT)
  • Submitted for Implementation (<- BR. Committed)
  • Implement
  • Implemented (-> BR. Implemented)
  • Completed (<-> BR. Completed)
  • Postponed (<-> BR. Postponed by IT)
  • Rejected (<-> BR. Rejected by IT)

Die Statusbezeichnungen sind anders. Dennoch ist eindeutig erkennbar, dass der Prozess identisch zum Change Request ist.

SAP Solution Manager 7.1 Requirements Management Add-on

  • Submitted / Neu
  • To Check / Prüfung
  • Checked / Genehmigt
  • Released / Freigegeben
  • Ongoing Implementation / Implementierung
  • Implemented / Realisiert
  • Tested / Getestet
  • Confirmed / Abgenommen
  • Change Required / Überarbeitung
  • Deferred / Zurückgestellt
  • Reject / Abgelehnt

Über die Statusbezeichnungen kann man streiten. Der Prozess entspricht aber bis auf die zum Glück nicht vorhandene überflüssige Genehmigung dem Business Requirement.

SAP Solution Manager 7.1 Change Request

  • Created
  • Validation
  • Extend Scope
  • To be Approved
  • Approved
  • Being Implemented
  • Implemented
  • Confirmed
  • Rejected

Die Statusbezeichnungen sind anders. Dennoch ist eindeutig erkennbar, dass der Prozess identisch zum IT Requirement ist.

Fazit: Das Requirements Management im SAP Solution Manager 7.2 ist nicht durchdacht, nicht ausgereift und folglich für die produktive Nutzung nicht geeignet.

Disclaimer: Dieser Beitrag spiegelt meine persönliche und folglich subjektiv geprägte Meinung zum Thema SAP Solution Manager 7.2 Requirement(s) Management wider. SAP SE hat diesen Beitrag nicht geprüft, nicht kommentiert, nicht genehmigt und nicht dementiert. Dieser Beitrag stellt keiner Kauf- oder Nicht-Kauf-Empfehlung dar. Welche Lösung (S, M, L oder SM 7.2) für Sie die optimale Lösung ist, kann aus diesem Beitrag nicht abgeleitet werden. Hierfür ist eine ausführliche Anforderungsanalyse 🙂 notwendig.

How to allow or prevent status change based on phase of change cycle?

The phase control of change cycles is allowing or disallowing certain transport related activities dependent on the current phase. Sometimes the corresponding status change will be allowed or disallowed.

Some famous examples are:

  • Development without Release / Test / Go Live Preparation:
    • Normal Changes cannot be switched from „In Development“ to „To Be Tested“
  • GoLive:
    • Normal Changes cannot be switched from „In Development“ to „To Be Tested“
    • Urgent Changes cannot be switched from „In Development“ to „To Be Tested“

You might want to have some more status change control dependent on the phase of the change cycle. In other words: You want to allow or prevent a switch to a certain status in Normal Change or Urgent Change if the change cycle is or isn’t currently in a specific phase.

Good news:

This is just configuration. In other words: We are able to allow or restrict status changes dependent on change cycle phases. With the following steps I will guide you thru the configuration of an example:

  1. Define Task List action Z_IN_GO_LIVE_ONLY and Z_NOT_IN_GO_LIVE in view /TMWFLOW/TPCACTS.
  2. Allow Task List action Z_IN_GO_LIVE_ONLY in phase GO_LIFE only. Allow Task List action Z_NOT_IN_GO_LIVE in all phases except GO_LIFE. View cluster /TMWFLOW/VC_PHMD is to be used here.
  3. Map Task List action to ChaRM action ZIGLO_SMMJ and ZNIGL_SMMJ in view cluster /TMWFLOW/VC_CPVR (for path CRMW -> SMMN or SMDV).
  4. Define ChaRM action ZIGLO and ZNIGL in view TSOCM_ACTIONS and TSOCM_ACT_DEF. Assign class CL_CHM1_INSTANCE here. The message class and number can be empty but the ChaRM integration flag needs to be set to flag it as tasklist resp. transport related action.
  5. Implement a dummy BADI implementation for these actions. These implementations just need to exist and to be active. They don’t need to do anything (method body can/should be empty).
  6. Assign ChaRM action ZIGLO_SMMJ or ZNIGL_SMMJ to the target status of your Change Transaction in view cluster AIC_SETTINGS corresponding to your requirements. It does not matter whether this action is defined as early or late action since it does nothing.
  7. Assign ChaRM check condition CHECK_ACTION_PHASE to the target status of your Change Transaction and configure it as cancel action (the status change will be cancelled, if the check fails). This setup is also part of view cluster AIC_SETTINGS which can be accessed via SM34 of SPRO.
  8. Repeat or adjust these steps for other phases, actions or transaction types.

Result: Whenever the end-user is performing a status change to the target status, the check condition CHECK_ACTION_PHASE will be triggered and therefore check whether there is an ChaRM action assigned to the target status which is not allowed in the current change cycle phase. This check will find action ZIGLO or ZNIGL. This action will be translated to action Z_IN_GO_LIVE_ONLY or Z_NOT_IN_GO_LIVE and checked against the current change cycle phase using the Task List action assignment configured in step 2. The action itself is doing nothing.

In case you configured ChaRM action ZIGLO: The status change is only possible if the change cycle is in phase „Go Live“.

In case you configured ChaRM action ZNIGL: The status change is only possible if the change cycle is NOT in phase „Go Live“.

If you want to check more than one change cycle phases (e.g. Test or Go Live), you can combine several ChaRM actions. However, this make sense for ZNIGL and similar action only. If you combine ZIGLO and similar actions at least one check will always fail and therefore preventing the status change. If you want to configure a generic solution, you have to configure actions for every change cycle phase: NOT_IN_DEV_W/O_REL, NOT_IN_DEV_W_REL, NOT_IN_TEST, …

Phase of change cycle is preventing execution of transport related activity. How to change this behavior?

The phase control of change cycles is allowing or disallowing certain transport related activities dependent on the current phase.

Some famous examples are:

  • Development without Release / Test / Go Live Preparation:
    • Transport Request of Normal Changes cannot be released
    • Transport of Copies of Normal Changes cannot be created and released
  • GoLive:
    • Transport Requests of Normal Changes cannot be released
    • Transport of Copies of Normal Changes cannot be created and released
    • Transport Requests of Urgent Changes cannot be released
    • Import All into Test is not allowed
    • Import of Urgent Changes into Test or Prod is not allowed
    • Only in this phase an Import All in Production is allowed

When implementing Change Requests in an agile manner like SCRUM, this phase based transport control is not wanted. Especially the Go Live phase is a critical thing because we need to switch to this phase to be able to import all transports into production but at the same time developers are blocked in continuing their development.

Good news:

This is just configuration. In other words: We are able to remove these restrictions and allow production import in „Development with Release“ or Transport Request release in phase „Go Live“.

  1. Call SM34
  2. Open view cluster /TMWFLOW/VC_PHMD
  3. Select phase model (e.g. DEVRL or MNTCL)
  4. Select phase (e.g. DEVELOP_AND_RELEASE or GO_LIFE)
  5. Add or remove action (e.g. SM_IMP_PROD or RC_TR_RELEASE)

Caution: This configuration is delivered by SAP. It is officially not allowed to change these settings. It might happen that you will lose SAP support for SAP incidents in this area. If you remove some entries they might be restored after activating object piece list in SOLMAN_SETUP again which is a regular activity after Support Package upgrade.

Note: If you want to allow creation and release of Transport of Copies, you need to allow Transport Request release. If you still want to disallow release of original Transport Request, you need to prevent the corresponding status change dependent on the current change cycle phase. This additional setup is described in another blog.

SAP Solution Manager Performance Optimierung

Der SAP Solution Manager sammelt über die Jahre viele Daten ein. Diese Daten werden in der Regel weder archiviert noch gelöscht. Das hat zur Folge, dass der SAP Solution Manager mit der Zeit mehr CPU- und Speicher-Ressourcen benötigt und gleichzeitig die Performance signifikant abnimmt.

Es gibt zahlreiche SAP-Hinweise zur Performanceoptimierungen, die Programmoptimierungen vornehmen und auf diesem Weg die Performance kontinuierlich verbessern. Diese Hinweise werden mit SAP Support Packages ausgeliefert und sind folglich irgendwann automatisch implementiert.

Nicht so Datenaufräumaktivitäten. Diese sind von einem SAP-Administrator manuell durchzuführen bzw. regelmäßig einzuplanen. Hier ein paar Beispiele:

  1. Deaktivieren nicht benötigter BDocs. Siehe Transaction SMW01 und SMQ2. Nutze Transaction SMW3_00. Siehe SAP-Hinweis 1960627 – Inbound qRFC Error/unwanted BDoc’s on Solution Manager System. Achtung: Bei aktiver ERP-Integration dürfen BDocs natürlich nicht generell deaktiviert werden.
  2. Löschen alter Anwendungsprotokolleinträge. Siehe Transaktion SLG1 bzw. Tabellen BALHDR, BALDAT und BAL_INDX. Nutze Report SBAL_DELETE. Siehe SAP-Hinweis 195157 – Application log: Deletion of logs and SAP-Hinweis 2192622 – CHARM Change Documents missing Messages data in the Application Log.
  3. Löschen alter Aufgabenplanprotokolleinträge. Siehe Tabellen SMMAIN, SMSELKRIT, SMPARAM. Nutze Report SMAN_ARCHIVE_MONI_DATA oder SCMA_DEL_DATA. Siehe SAP-Hinweis 1674954 – Schedule manager: Deleting monitor entries.
  4. Löschen von Aufgabenplänen abgeschlossener dringender Änderungen. Siehe Tabelle /TMWFLOW/PROJCTC. Nutze Report /TMWFLOW/TL_CLEAN_UP_TASKLIST. Siehe hierzu SAP-Hinweis 1970167 – ChaRM: Delete completed urgent change task list.
  5. Löschen von obsoleten/falschen Downgrade Protection Datensätzen. Siehe Tabelle SCTS_TRACK_MAIN (und andere). Nutze Report RSCTS_OBJ_TRACK_CLEANING, RSCTS_OBJ_TRACK_CLEANING_2, RSCTS_OBJ_TRACK_RUN_QUEUE und RSCTS_OBJ_TRACK_REMOVE_SYSTEM. Achtung: Diese Reports beheben Inkonsistenzen älterer CTS-Plugins. Bei Verwendung des neuesten CTS-Plugs ist ggf. ein einmaliger Lauf notwendig. Ein regelmäßiges Aufräumen ist hier nicht erforderlich, da die Programmfehler mittlerweile behoben wurden. Hierzu existieren verschiedene SAP-Hinweise.

ChaRM should ignore a Transport Request. What to do?

Issue:

  1. You deleted a transport request manually but ChaRM is still checking it.
  2. You implemented something but you now want to ignore the corresponding transport request. However you don’t want to undo all implementation steps manually and to send the build and undo transport request to production.

Note:

  1. The following solutions are workarounds.
  2. You should never delete transport requests manually. Only ChaRM should delete transport requests.
  3. You should never reject undo activities. All changes need to be send to production even undo activities.

Solution:

  1. Decouple Transport Request even if this feature is not configured for Change Documents or event decoupling is not allowed for the current CD Status.
    http://scn.sap.com/docs/DOC-65069
  2. Delete assignment between TR and CD (from table TMWFLOW/TRORDHC) using report /TMWFLOW/TRANSPORT_DELETE after implementation of SAP note 2009859: ChaRM: deleted transport request still exists in ChaRM table.

How to detect status changes?

Sometimes we want to trigger an activity (e.g. PPF action) only if a (or if no) status change is performed. Sometimes it can be complicated to detect status changes since error messages are raising system status changes or since status changes can be cancelled.

Dependent on the requirements, we can try following solutions:

  1. Real status changes: Use function module CRM_STATUS_READ_OW and check the fields ACTIVE and ACTIVE_OLD of parameter ET_STATUS_WRK. Alternatively compare the result against CRM_STATUS_READ_DB.
  2. Real status changes or Status cancel: Use function module CRM_EVENT_PASS_INFO_EXE_OW with execution time ‚080‘ and check whether parameter contains ET_EVENT_CALLS contains object „STATUS“. If you are only interested in status changes on header level, please ensure that ORDER_GUID and OBJ_GUID are equal.
  3. Real status changes(?): Use method GET_PREV_STATUS_OF_CHNG_DOC of class CL_HF_HELPER.
  4. Real PPF action triggered status change: Define a PPF action check previous user status in Schedule condition and new user status in start condition. Ensure that the sort number of this action is higher than the sort number of the status change action.

These solutions are partially also working for partner changes, appointment changes, text changes etc.

Links:

https://scn.sap.com/thread/1270181

Use Case 1:

In ChaRM there is always a consistency check performed after status change. It might be useful to perform consistency checks on every transaction save to validate transaction consistency. However, this check should not be performed if the framework is perfoming it (because of performance reasons and because the check result might be different). Therefore we need to detect status change activities which includes real status changes as well as cancelled status changes. This can be done by solution (2).

Use Case 2:

In SAP Solution Manager IT Service Management status changes are not triggered by PPF actions, therefore solution (4) is not working. The same issue we have for ChaRM if status changes are triggered by CRM_SOCM_SERVICE_REPORT. If we want to trigger an action (e.g. e-mail notification) on status change only, we have to follow solution (1). Please note, that this solution is already available in SAP standard: Note 1007346 – Scheduling of actions only after resetting a status.

*"----------------------------------------------------------------------
*"Methoden Signatur:
*"  Importing
*"     VALUE(FLT_VAL) TYPE PPFDFLTCO2
*"    IO_CONTEXT TYPE REF CL_CONTEXT_PPF
*"    IP_PROTOCOL TYPE BALLOGHNDL
*"    IP_TTYPE TYPE PPFDTT
*"    II_CONTAINER TYPE REF IF_SWJ_PPF_CONTAINER
*"  Exporting
*"    EP_RC TYPE SY-SUBRC
*"----------------------------------------------------------------------

METHOD if_ex_eval_startcond_ppf~evaluate_start_condition.

  DATA:
    lr_crm_order        TYPE REF TO cl_doc_crm_order,
    lv_header_guid      TYPE crmt_object_guid,
    lv_exec_mode        TYPE sppfdxmode,
    lv_on_database_flag TYPE abap_bool,
    lt_events           TYPE crmt_event_call_tab.

* default false
  ep_rc = 4.

*Get Execution Mode
  lv_exec_mode = cl_manager_ppf=>get_instance( )->execution_mode.

*Get Header GUID
  TRY.
      lr_crm_order ?= io_context->appl.
    CATCH cx_root.
      RETURN.
  ENDTRY.

  lv_header_guid = lr_crm_order->get_crm_obj_guid( ).

*We need a Business Transaction.
  CHECK lv_header_guid IS NOT INITIAL.

*First Save?
  CALL FUNCTION 'CRM_ORDERADM_H_ON_DATABASE_OW'
    EXPORTING
      iv_orderadm_h_guid  = lv_header_guid
    IMPORTING
      ev_on_database_flag = lv_on_database_flag.

*We only want to allow our action in dialog mode or if we change the Transaction.
  CHECK lv_exec_mode IS INITIAL OR lv_on_database_flag = abap_false.

**Get Status
*  CALL FUNCTION 'CRM_STATUS_READ_OW'
*    EXPORTING
*      iv_guid        = lv_header_guid
*      iv_only_active = abap_false
*    IMPORTING
*      et_status_wrk  = lt_status_wrk1[]
*    EXCEPTIONS
*      not_found      = 1
*      OTHERS         = 2.
*
*  CHECK sy-subrc = 0.

*Find out wich objects are really changed.
  CALL FUNCTION 'CRM_EVENT_PASS_INFO_EXE_OW'
    EXPORTING
      iv_exetime          = '080'
      iv_order_guid       = lv_header_guid
      iv_obj_kind         = 'A'
    IMPORTING
      et_event_calls      = lt_events
*     et_segments_changed = lt_segments
    EXCEPTIONS
      OTHERS              = 99.

*We are only interested in changed objects on header level.
*Therefore we have to ignore/delete every change on item level.
  DELETE lt_events WHERE obj_guid <> lv_header_guid.

*Are there any status changes (including error free flag, including status change cancel)
  READ TABLE lt_events
    TRANSPORTING NO FIELDS
    WITH KEY obj_name = 'STATUS'.

*Fine. We are in normal save mode without any status change activity.
  CHECK sy-subrc <> 0 OR lv_on_database_flag = abap_false.

*Are there any header changes (CHANGED_AT)
  READ TABLE lt_events
    TRANSPORTING NO FIELDS
    WITH KEY obj_name = 'ORDERADM_H'.

*Fine somthing has really changed.
  CHECK sy-subrc = 0.

*OK. Action is allowed to be executed.
  ep_rc = 0.

ENDMETHOD.

Authority Check on Execution of Task List Tasks

All transport activities performed by a Change Request Management action, by the IT Operator or by batch jobs are tunneled thru the task list. For every transport activity there exist a specialized task in the task list on header, footer or system role level.

For some of these tasks an authority check is performed on execution, for some not.

Why???

For some of these tasks an authority check against following authority objects will be performed on task execution:

  • /TMWFLOW/H Change Request Management: Task in Header
  • /TMWFLOW/D Change Request Management: Task in Development Systems
  • /TMWFLOW/O Change Request Management: Task in Follow-On Systems
  • /TMWFLOW/P Change Request Management: Task in Production Systems
  • /TMWFLOW/R Change Request Management: Task in Retrofit Systems
  • /TMWFLOW/S Change Request Management: Task in Single Systems
  • /TMWFLOW/F Change Request Management: Task in Footer

However, only following tasks are checked by SAP standard (SM 7.1 SP 11):

  • 1000 REQUEST_CREATE /TMWFLOW/SCMA_TRORDER_CREATE
  • 1500 REQUEST_DECOUPLE /TMWFLOW/SCMA_TRORDER_DECOUPLE
  • 1600 REQUEST_ASSIGN /TMWFLOW/SCMA_TRORDER_ASSIGN
  • 1700 REASSIGN_CHANGE /TMWFLOW/SCMA_REASSIGN_CHANGE
  • 1900 REQUEST_REASSIGN /TMWFLOW/SCMA_TRORDER_REASSIGN
  • 2000 TASK_CREATE /TMWFLOW/SCMA_TRTASKS_CREATE
  • 3000 REQUEST_RELEASE /TMWFLOW/SCMA_TRORDER_RELEASE
  • 4000 REQUEST_IMPORT /TMWFLOW/SCMA_TRORDER_IMPORT
  • 5000 CRIT_OBJ_APPROVE /TMWFLOW/SCMA_CRIT_OBJ_APPR
  • 6000 UC_IN_OTHER_SYSTEMS /TMWFLOW/SCMA_TRIMP_SYNC_TEST
  • 7000 LOGON /TMWFLOW/SCMA_RSRLOGIN
  • 8000 CTS_PROJECT_RELEASE /TMWFLOW/SCMA_CTS_RELEASE
  • 9000 QUEUE_PREPARATION /TMWFLOW/SCMA_QUEUE_PREPARE
  • 9100 QUEUE_IMPORT /TMWFLOW/SCMA_QUEUE_IMPORT

Because of technical/historical reasons, the checks for 1700, 1900 5000 are done against /TMWFLOW/D instead of /TMWFLOW/H. Maybe this will be changed in SAP Solution Manager 7.2 and that is why there already exist the not used authority objects /TMWFLOW/H and /TMWFLOW/F.

What to do if we want to have authority checks for other SAP standard tasks or for customer specific tasks?

  1. Maintain table /TMWFLOW/TSKPRGC (Mapping of task report name to task id). The id should be the same as the id used in task list definition. This customizing alignment is not obligatory but would be nice.
  2. Maintain table /TMWFLOW/AUTTSKC (Extend value help for field /TMWFLOW/T of the mentioned authority objects). The description of the task should be equal to the task list definition. This customizing alignment is not obligatory but would be nice.
  3. If the task is defined on header or footer level, you might need to do a modification to map it to /TMWFLOW/D. The authority check is always done using function module /TMWFLOW/TASKLIST_AUTH_CHECK. This function module is called at line 559+ of /TMWFLOW/TASK_START1 and line 222+ of IF_EX_SCMA_TREE_STATUS~ACTION_ALLOWED of class /TMWFLOW/CL_IM_SCMA_STATUS. At these code sections, you will find the mentioned system role mapping. Maybe a better place to do the mapping by enhancement instead of modification is at the beginning of function module /TMWFLOW/TASKLIST_AUTH_CHECK.

Additionally to these authority checks, function module /TMWFLOW/TASKLIST_AUTH_CHECK is also checking B_SMAN_WPL and /TMWFLOW/M on opening of task list or on changing phases. Therefore please ensure to add these authorities to your PFCG roles if needed.

In case you want to add authority checks for SAP standard tasks, you should use following task ids since these IDs are already hard coded in class interface /TMWFLOW/CL_CS_TL_TASK:

  • 1800 IGNORE_DGP_CONF /TMWFLOW/SCMA_IGNORE_DGP_CONF
  • 2100 REQUEST_DELETE /TMWFLOW/SCMA_TRORDER_CLEAR
  • 2200 REPAIR_IMPORT_FLAG /TMWFLOW/SCMA_SET_REPAIR_FLAG
  • 3100 CLUSTER_RELEASE
  • 3200 CLUSTER_IMPORT
  • 4100 PRELIMNRY_IMPORT /TMWFLOW/SCMA_PRELIMNRY_IMPORT

SAP Solution Manager 7.2 Nutzungsrechte

Mit Ramp-Up des SAP Solution Manager 7.2 im Dezember 2015 wurden die Nutzungsrechte für den SAP Solution Manager vereinfacht. Diese Vereinfachung gilt rückwirkend auch für den SAP Solution Manager 7.1 (und 7.0). An dieser Stelle möchte ich Ihnen eine kurze Zusammenfassung speziell für das Change Request & Control Management geben:

Für welche Assets darf das Change Control Management genutzt werden?

SAP-Enterprise-Support-Kunden können das Change Control Management ohne Einschränkungen für alle IT-Assets nutzen. Dagegen sind SAP-Standard-Support-Kunden auf SAP-Komponenten (Änderungen an der SAP-Lösung) beschränkt. Die Nutzung von ChaRM oder QGM für Non-IT-Assets bedarf einer zusätzlichen SAP-CRM-Lizensierung. Hier ist im Vorfeld zu prüfen, ob die Nutzung von SAP CRM IT Service Management (SAP CRM ITSM) oder SAP Management of Change (SAP ERP MoC) geeignetere Lösungen darstellen.

Darf das Quality Gate Management (QGM) genutzt werden?

QGM ist für alle SAP-Kunden nutzbar. Früher war die Nutzung von QGM nur für SAP-Enterprise-Support-Kunden erlaubt. Diese Beschränkung wurde entfernt.

Darf ChaRM Flex genutzt werden?

Die ab SAP Solution Manager 7.1 Feature Pack 1 eingeführten Features zur Flexibilisierung des Change Request Management [Change-Cycle-Reassignment (CCA), Change-Project-Reassignment (CPA), Transport-Change-Reassignment (TCA), External-Transport-Assignment (ETA), Preliminary Import (PI), Status Dependent Import (SDI), Selective Import (SI)] sind kleine Improvements, welche keine eigenständigen Anwendungen darstellen. Somit gelten die Nutzungsrechte für ChaRM. Die Nutzung ist folglich für alle SAP-Kunden erlaubt.

Darf das Enhanced Change and Transport System (CTS+) genutzt werden?

Die Erweiterung zum Transport von Non-ABAP-Content ist für alle SAP-Kunden nutzbar, sofern es sich um SAP-Content (Portal, WD JAVA, BO, PO, HANA, …) handelt. Der Transport von Non-SAP-Content durch Anbindung externer Anwendungen an das CTS+ ist dagegen nur für SAP-Enterprise-Support-Kunden zulässig. Das war schon immer so, da CTS+ technisch zum Software-Logisic-Toolset und somit zur SAP-Netweaver-Basis gehört. Die Einschränkung zum Non-SAP-Content ergibt sich aus der Nutzungsbeschränkung von ChaRM/QGM für SAP-Standard-Support-Kunden auf SAP-Komponenten.

Darf das Central Change and Transport System (cCTS) genutzt werden?

Die Features im Kontext cCTS – inkl. Cross System Object Lock (CSOL), Downgrade Protection (DGP), Retrofit (RF), Critical Objects Check & Approval und Cluster & Collections – sind für alle SAP-Kunden nutzbar. Das war schon immer so, da cCTS technisch zum SL-Toolset und somit zur SAP-Netweaver-Basis gehört.

Darf das IT Portfolio and Project Management (ITPPM) genutzt werden?

Das SAP Project Management darf von allen SAP-Kunden ohne zusätzliche Lizenzierung genutzt werden. Das SAP Portfolio Management erfordert eine zusätzliche Lizensierung. SAP-Enterprise-Support-Kunden können das ITPPM für IT-Projekte der gesamten IT nutzen, während SAP-Standard-Support-Kunden lediglich SAP-Projekte steuern dürfen. Die Nutzung des PPM für Non-IT-Projekte erfordert eine zusätzliche Lizensierung. Bisher war ITPPM nur für SAP-Enterprise-Support-Kunden nutzbar. Diese Beschränkung wurde entfernt.

Dürfen Business Process Change Analyzer (BPCA), Scope and Effort Analyzer(SEA) und Custom Code Management (CCM) genutzt werden?

Das Change Request Management (ChaRM) besitzt Integrationen zu anderen SAP-Solution-Manager-Werkzeugen zur Identifizierung des Anpassungs- und Testumfangs  sowie zur Qualitäts- und Verwendungs-Analyse. Hiermit kann u.a. untersucht werden, welche Geschäftsprozesse und Entwicklungsobjekte von der Änderung direkt oder indirekt betroffen sind und folglich angepasst, getestet, dokumentiert bzw. mittransportiert werden müssen. Die genannten Werkzeuge sind explizit nur für SAP-Enterprise-Support-Kunden nutzbar. Hier hat sich nichts geändert, diese Anwendungen waren schon immer diesem Kundenkreis vorbehalten.

SAP-Standard-Support-Kunden dürfen jedoch diese Funktionen ausprobieren, da diese Evaluierung ggf. Grundlage für einen Wechsel in den SAP-Enterprise-Support darstellen könnte. SAP SE wird die kontinuierliche Nutzung der Funktionen nicht aktiv überprüfen. Jedoch sind Nutzungsstatistiken unter anderem in den EarlyWatch Alerts enthalten, so dass eine Nutzungsprüfung leicht möglich ist. Das Custom Development Management Cockpit (CDMC) und die Custom Code Analysis Apps (CCAPPS) sind auch direkt im Managed System aufruf- und nutzbar. Ein Nutzungsnachweis ist hier nicht möglich. Die Nutzung dieser Funktionen ist dennoch offiziell im SAP-Standard-Support nicht zulässig.

Darf der Transport Execution Analysis Self-Service (for Projects)  [TEA / TEAP] genutzt werden?

Die Nutzung der Self-Services (SAP Engagement and Service Delivery) ist für alle SAP-Kunden erlaubt. Bisher war die Nutzung SAP-Enterprise-Support-Kunden vorbehalten, da es sich bei den Self-Services um ein SAP-Enterprise-Support-Angebot handelt. Diese Beschränkung wurde anscheinend entfernt.

Dürfen die End-To-End Change Analysis (CA), das Change Reporting (CR) und die Configuration Validation (CV) genutzt werden?

Die beiden genannten Funktionen zur Identifizietren und Analysieren von Lösungsänderungen bzw. zum Vergleich von Lösungskonfigurationen sind Teil der End-To-End Change Diagnostics und somit Teil der Funktion „SAP Solution Manager Diagnostics“ bzw. des Szenarios / Prozesses „Root Cause Analysis“. Folglich sind diese Funktionen sowohl im SAP-Standard-Support als auch im SAP-Enterprise-Support uneingeschränkt nutzbar.

Welche SAP-CRM-Funktionen dürfen genutzt werden?

Es gibt keinerlei Beschränkung zur Nutzung des im SAP Solution Manager enthaltenen SAP CRM. In den alten Nutzungbedingungen gab es die Einschränkung „SAP CRM functionalities which support the certified ITIL processes became inclusion in the usage rights of SAP Solution Manager.“ Diese Beschränkung wurde entfernt, da sie in der Vergangenheit zu vielen Grauzonen und Diskussionsbedarfen geführt hat.

Dies ist jedoch kein Freibrief, da die Nutzung des SAP Solution Managers selbst auf die Steuerung und Verwaltung der gesamten IT (SAP-Enterprise-Support) bzw. der SAP-Komponenten (SAP-Standard-Support) beschränkt ist. Während SAP CRM Sales (Angebote und Verträge), SAP Web Channel Experience Management (Webshop) und SAP Workforce Management (Ressourcenzuordnung) gut mit diesem Ziel vereinbar sind, lässt sich die Nutzung der Marketingfunktionen (Marketingkampagnen an Meldungserfasser?) vermutlich kaum rechtfertigen. Gleiches gilt, wenn plötzlich IBase-Komponenten, Produkte, Geschäftspartner oder Geschäftsvorgänge auftauchen, die keinen Bezug zur „Steuerung und Verwaltung der IT“ haben.

Zu beachten ist auch, dass die Zusatz-Engines zur Preisberechnung oder Telefonieintegration (als ausgewählte Beispiele) nach wie vor lizenzpflichtig sind.

Welche Nutzerlizenzen benötige ich?

Anforderer und Tester (ohne Nutzung von Test Management Funktionen und Trusted Managed System Login) sowie Genehmiger im Approval Management sind sogenannte „low touch user“ und bedürfen keiner zusätzlichen Lizensierung.

Entwickler, Tester (mit Nutzung von Test Management Funktionen oder Trusted Managed System Login) und IT-Operatoren benötigen eine Lizenz für ein SAP-System. Das ist in der Regel schon alleine aufgrund Ihrer Tätigkeit als SAP-Entwickler, SAP-Anwender oder SAP-Basis-Administrator gegeben.

Change Manager und Release Manager benötigen eine SAP-Lizenz. Sollten Sie nicht bereits aus anderen Gründen eine Lizenz für irgend ein SAP-System besitzen, benötigen sie mindestens eine „SAP Worker“-Lizenz.

Was ist mit SAP Product Support for Large Enterprises (PSLE), SAP ActiveEmbedded und SAP MaxAttention?

Diese Support-Modelle werden in diesem Zusammenhang mit SAP Enterprise Support gleichgestellt.

Wo finde ich die offiziellen und aktuellen Informationen zum Thema?

https://support.sap.com/solution-manager/usage-rights.html


Was mache ich, wenn ich noch weitere Fragen habe?

Wenn Ihnen hier eine Frage fehlt, dann melden Sie sich bitte bei mir und ich beantworte diese Ihnen gern. Ich werde Frage und Antwort anschließend hier im Blogbeitrag allen Interessierten zugänglich machen.

Sind die Aussagen rechtlich verbindlich?

Dies ist keine Rechtsberatung. Die dargestellten Sachverhalte können fehlerhaft, unvollständig oder veraltet sein. Bitte prüfen Sie daher immer die offiziellen SAP-Informationen und konsultieren Sie im Zweifelsfall Ihren SAP-Vertriebs-Ansprechpartner.

SAP Solution Manager 7.2 – Diese ChaRM Transaktionen gibt es nicht mehr

Gehören Sie auch zu denen, die sich lange Listen wichtiger Transaktionscodes aufgebaut haben?

‎Ja!

Na dann können Sie die Liste bald deutlich verkleinern. Denn im ChaRM 7.2 verschwinden zahlreiche Transaktionen aus Ihrem System‎:

Hier ein paar Beispiele:

  • SOLAR_PROJECT_ADMIN
  • SOLAR_EVAL
  • ‎/TMWFLOW/REPORTING
  • /TMWFLOW/REPORTINGN‎
  • ‎/TMWFLOW/TRMO‎
  • ‎/TMWFLOW/PROJ
  • ‎/TMWFLOW/MAINTINST‎
  • ‎/TMWFLOW/MAINTENANCE
  • /TMWFLOW/MAINT (?)
  • /TMWFLOW/LOCKMON
  • /TMWFLOW/CMSCONF
  • ‎/TMWFLOW/CHARMCHK

Folgende Reports verschwinden ebenfalls:

  • /TMWFLOW/SCMA_BTCH_SYNC_UC
  • /TMWFLOW/SCMA_BTCH_SYNC_TEST‎
  • ‎/TMWFLOW/SCHEDULE_IMPORT‎

Ja aber?!

Was aber?

Na wie soll ich denn dann die superwichtigen Funktionen aufrufen? Die brauch ich doch. Heulheulheul.

Na das geht dann halt anders.

Ahh. Danke für die Info.

PS: Im SAP Solution Manager 7.2 Change Request Management wurden die genannten Transaktionen im neuen „Administrations-Cockpit“ zusammengefasst und stark verbessert. Zum Beispiel können nun nachträgliche Registrierungen für die systemübergreifende Objektsperre zentral im SAP Solution Manager für mehrere Transportaufträge gleichzeitig im Batchlauf durchgeführt werden. Darüber hinaus wurden die genannten Reports in den Aufgabenplan verschoben bzw. dort bereits vorhandene Funktionen entsprechend erweitert.

PPS: Sie können Ihre Liste sehr gern um „SLAN – SAP Solution Manager Launchpad“, „SOLADM – Lösungsverwaltung“ und „SOLDOC – Lösungsdokumentation“ erweitern. Außerdem bleiben SOLMAN_SETUP, LMDB und SM_CRM ja erhalten. Ihre Liste ist also nicht ganz leer.

PPPS: Auch SOLMAN_WORKCENTER und SM_WORKCENTER bleiben erhalten starten allerdings wie auch SLAN das „SAP Solution Manager Launchpad“.

Such- und Wertehilfen im SAP Web Client UI

Das SAP Web Client UI ist ein mächtiges und flexibles Framework zur Entwicklung nutzerfreundlicher User Interfaces. Doch manchmal hat SAP SE die Lösung nicht zuende gedacht. Als Beispiel sei hier der üblicherweise ungerechtfertigt hohe Entwicklungsaufwand zur Implementierung Feldprüfungen bei Eingabe, Feldaufbereitungen bei Ausgabe und Such- bzw. Wertehilfen genannt.

Folgende Lösungen stehen zur Verfügung:

  • Die genannten Logiken sind in den Kontextknoten implementiert. Wird also ein Kontextknoten benutzt, der in einer anderen UI-Komponente bereits existiert, sollte geprüft werden, ob der Kontextknotenkontroller wiederverwendet werden kann. Nachdem die Super-Klasse des eigenen Kontextknoten durch die Standard-Kontextknotenkontrollerklasse ausgetauscht wird, stehen in der Regel sämtliche vom Standard gewohnte Prüfungen und Aufbereitungen zur Verfügung.
  • Bei Nutzung des Design Layers können dem Feld Dictionary-Suchhilfen zugeordnet werden. Diese werden dann automatisch gezogen.
  • Für Felderweiterungen mittels Application Enhancement Toolset (AET) werden automatisch die Dictionary-Suchhilfen bzw. -Wertehilfen genutzt. Ohne Programmieraufwand.
  • Im Artikel SAP CRM & SAP Solution Manager Business Transaction Search Enhancement habe ich beschrieben, wie die AET-Automatik auch für SAP-Standard-Felder oder manuell ergänzte Kundenfelder aktiviert werden kann. Dieser Weg wird jedoch von SAP SE nicht supportet.
  • Wenn alle anderen Wege versagen, dann muss am Ende doch klassich die V-Getter-Methode im Kontextknotenkontroller ausprogrammiert werden. Für einfache Dropdown-Listen gibt es jedoch bereits eine Hilfsklasse cl_crm_uiu_ddlb die uns die meiste Arbeit abnimmt:
method GET_V_NAME_OF_THE_ATTRIBUTE.

DATA:
lr_valuehelp_pldescr TYPE REF TO cl_crm_uiu_ddlb.

*Create Value Help Descriptor
CREATE OBJECT lr_valuehelp_pldescr
EXPORTING
iv_source_type = if_bsp_wd_valuehelp_pldescr=>source_type_table.

*Build up dropdown list based on data element.
CALL METHOD lr_valuehelp_pldescr->set_data_element
EXPORTING
iv_data_element      = 'NAME_OF_THE_DATA_ELEMENT'
* iv_add_initial_entry =
.

*Return value help descriptor
rv_valuehelp_descriptor ?= lr_valuehelp_pldescr.

endmethod.

SAP Solution Manager 7.2 Change and Release Management (ChaRM)

Im SAP Solution Manager 7.1 Change Request Management gab es eine unüberwindbare Hürde, die ein Release Management unmöglich gemacht hat: Es gab keine Möglichkeit zur Releaseplanung. Zu jedem Projekt gab es stets nur einen aktiven Änderungszyklus. Wir konnten also nie eine Änderung einem zukünftigen Zyklus im Sinne einer Planung zuordnen. Ganz abgesehen davon, dass Änderungsanträge generell keinem Zyklus zugeordnet werden konnten.

Das ist nun mit SAP Solution Manager 7.2 Geschichte: Endlich können wir eine Kette von Releasezyklen planen und nutzen. Dabei dürfen wir sogar verschiedene Branches (z.B. für Major- und Minor-Releases) kombinieren.‎ Unfertige Entwicklungen werden wie gewohnt in den Folgezyklus (der gleichen Branch) umgehangen, sofern diese nicht von Anfang an mit dem Folgezyklus verknüpft waren. Ein Zyklus darf nur produktiv gehen, wenn der Vorgänger produktiv ist. Der Aufgabenplan vom Vorgängerzyklus wird für den Nachfolger (der gleichen Branch) wiederverwendet. Änderungsanträge werden ebenfalls den Zyklen zugeordnet. Und es besteht optional die Möglichkeit, die Transportsteuerung komplett zu deaktivieren, falls lediglich der ChaRM-Workflow genutzt werden soll.

Was aber entgegen der schönen Bilder von SAP SE nicht gehen wird, ist dass verschiedene parallel laufende ChaRM-Releasezyklen bzw. QGM-Szenarien unabhängig voneinander gestartet und ggf. getestet werden, die Go-Lives dann aber synchronisiert durchgeführt werden. Ein releasezyklusübergreifender Aufgabenplan für die gesamte Change-Control-Landschaft ist nämlich aktuell leider nicht vorgesehen. Irgendwie hat SAP SE aber trotzdem nicht geschummelt bzw. gelogen. SAP SE geht nämlich einfach davon aus, dass Projekte zukünftig stets über SAP IT Portfolio and Project Management (SAP ITPPM) gesteuert werden. Und mehrere ITPPM-Projekte lassen sich sehr wohl einem Release(zyklus) zuordnen.

Übrigens gibt es alternativ noch den „Kontinuierlichen Zyklus“ (nur relevant, wenn ausschließlich mit Dringenden Änderungen gearbeitet wird – SAP1 wem das was sagt) und den „Phasenzyklus“ (entspricht nahezu dem alten Implementierungs- bzw. Wartungszyklus mit seinem bekannten Nachteil der Unplanbarkeit). Wir werden folglich in 99% der Fälle mit dem Releasezyklus arbeiten wollen.

Wo Licht ist, da ist auch Schatten: Die Integration von Change Request Management und Quality Gate Management, die ja erst kürzlich eingeführt wurde, wurde nun wieder aufgehoben. Sprich: Keine Übersicht mehr über parallel laufende Projekte inkl. Status und Meilensteinen. Keine Quality Gates mehr für die einzelnen Systeme der Landschaft.

Der Verlust ist aber wahrscheinlich verschmerzbar. Zum einen hat diese Kombination kaum einer genutzt(, weil sie ja noch so neu war). Und zum anderen kann die neue Release-Planungs-Funktion des ChaRM das irgendwie auch.

Völlig offen ist zur Zeit noch die Frage, wie mit Planänderungen umgegangen wird. Aktuell ist nämlich nur das Anlegen von neuen und Löschen von geplanten Releasezyklen vorgesehen. Doch was passiert, wenn sich der GoLive eines Major-Releases verschiebt und ein weiteres Minor-Release eingeschoben werden muss?

Hoffen wir einfach, dass dieser Fall in der Praxis niemals eintreten wird. 😉

PS: Ob SAP SE wohl mit SAP Solution Manager 7.2 das ChaRM endlich in „Change and Release Management“ umbenennen wird? Sinnvoll wäre es. Denn „Change Request Management“ bzw. die deutsch Übersetzung „Verwaltung von Änderungsanträgen“ war und ist mehr als irreführend.

SAP Solution Manager 7.2 – Lebwohl Dringende Änderung

Hand auf’s Herz: Warum nutzen Sie die Dringende Änderung?

Weil Sie Änderungen unabhängig von der Änderungszyklusphase importieren können?

Das kann die Normale Änderung mit dem Feature „Vorabimport“ auch.

Weil beim Wechsel in „In Entwicklung“ ‎automatisch Transportaufträge angelegt werden und der Prozess somit schneller ist?

Nun das ist einfach nur Konfiguration die auch für Normale Änderungen möglich ist.

‎Weil Sie Transportaufträge sofort freigeben und importieren können und nicht auf einen Importjob warten müssen?

Der Vorabimport kann das auch. Und ab SAP Solution Manager 7.2 gibt es die Möglichkeit des Sofortimportes für Transporte von Kopien.

Weil Sie es lieben ohne Transporte von Kopien zu arbeiten? Weil Sie es toll finden, dass systemübergreifende Anpassungen (z.B. ERP, CRM, BI, Portal) nicht mit einem Änderungsdokument ‎abgebildet werden können? Weil Sie gerne bei Produktivsetzung jede Änderung isoliert importieren und damit Reihenfolgeverletzungen provozieren wollen?

OK. Gewonnen. Dann nutzen Sie bitte weiterhin die Dringende Änderung. Ab SAP Solution Manager 7.2 wurde sie „signifikant“ verbessert und unterstützt jetzt auch Transporte in Sandboxsysteme.

Ich empfehle Ihnen jedoch beim Upgrade auf SAP Solution Manager 7.2 darüber nachdenken, die Dringende Änderung durch die Normale Änderung mit Vorabimport (seit SM 7.1 FP 1) und Sofort-Transportkopie-Import (seit SM 7.2) zu ersetzen. Der große Vorteil: Sie müssen sich nicht bereits am Anfang entscheiden, ob die Änderung außerhalb des Releasezyklus importiert ‎werden soll. Die Entscheidung fällt nach dem erfolgreichen Funktionstest mit Beantragung des Vorabimports. Der zweite Vorteil: Es werden nicht ständig Aufgabenpläne angelegt und abgeschlossen. Der dritte Vorteil: Die Normale Änderung hat nicht die zuvor geschilderten Nachteile der Dringenden Änderung.

Anmerkung am Rande: Natürlich hat auch die Dringende Änderung (Urgent Change) gegenüber der Normalen Änderung (Normal Change) Vorteile…z.B. das Feature „Urgent Change Distribution“.‎ Alles in allem hat die Daseinsberechtigung der Dringenden Änderung durch ChaRM Flex seit Solman 7.1 SP 5 jedoch deutlich abgenommen und dieser Prozess geht mit SAP Solution Manager 7.2 weiter. Die Dringende Änderung gibt es im SAP Solution Manager 7.2 noch und deren Nutzung wird von SAP für Fehlerbeseitigungen (Emergency Changes) und Standardänderungen (Standard Changes) nach wie vor empfohlen. Aber es gibt eben auch Alternativen. Und es ist die Tendenz abzusehen, dass die Dringende Änderung irgendwann (mit SAP Solution Manager 7.3?) sterben wird.

SAP Solution Manager 7.2 – Mehrstufige Abnahme und Freigabe für Produktivsetzung

Haben Sie das Approval Management genauso lieb gewonnen wie ich?

Seit SAP Solution Manager 7.1 war es endlich‎ möglich einen Änderungsantrag durch mehrere Parteien genehmigen zu lassen, bevor die Implementierung startete: Der Anforderer hat den Wunsch geäußert. Der Auftraggeber muss es ja bezahlen. Der Change Manager darf es planen und koordinieren. Der Release Manager möchte die stabile Lösung im Blick behalten. Der Entwicklungsarchitekt sollte zumindest mal drauf schauen, ob es machbar ist und was es kosten wird. Die kaufmännische Abteilung will ein Veto einlegen können, wenn die Bestellung noch nicht da ist. …

Dumm nur, dass‎ das Approval Management pro Vorgang nur einmal nutzbar ist und im Änderungsdokument und/oder Änderungszyklus gar nicht vorgesehen war. Wie soll man denn da einen sauberen mehrstufigen Prozess zur Freigabe für die Produktion abbilden? Ein einfacher Statuswechsel ist da nicht wirklich sinnvoll: Anforderer und Auftraggeber wollten es ja haben. Der Change Manager hat alle Quality Gates erfolgreich passiert. Der Release Manager kann die Produktivsetzung und den anschließenden Support gewährleisten. Der Entwicklungsarchitekt ist mit der Entwicklung und der Dokumentation sehr zufrieden. Der Test Manager hat keine offenen Testfehler zu vermelden. Die kaufmännische Abteilung hat den Geldeingang mit großer Freue registriert. …

‎Gute Neuigkeiten: Das Approval Management ist nun offiziell-optional auch in den Änderungsdokumenten nutzbar. Zur Nutzbarkeit in den Änderungszyklen gibt es aktuell noch keine offizielle Aussage. Die Wahrscheinlichkeit ist aber groß, dass es auch dort nutzbar ist.

Randnotiz: Mit Konfiguration und ein bisschen Entwicklung ging das auch schon im SAP Solution Manager 7.1. Allerdings war der Funktionsumfang leicht eingeschränkt und die Lösung wurde nicht offiziell unterstützt. Das ist nun endlich vorbei.

Optimierungspotential: Ich empfehle zusätzlich die Nutzung von Kriterienkatalogen zur strukturierten und transparenten Abarbeitung der Bewertung und Genehmigung bzw. Abnahme und Freigabe. Hierfür kann und sollte das Checklisten-Feature genutzt werden, sofern das Approval Management nicht ausreicht. Ein Best-Practice-Content wird von SAP SE leider nicht ausgeliefert (weder für Approval Management noch für Checklisten), kann aber im Rahmen der ChaRM-Einführung mittels Konfiguration kundenspezifisch ausgeprägt werden.

SAP Solution Manager 7.2 – Und wieder brauchen wir neue Vorgangsarten

Beim Upgrade von SAP Solution Manager 7.0 auf 7.1 mussten wir für unsere ChaRM-Vorgänge neue Vorgangsarten konfigurieren (und die Vorgangsdaten aufwendig migrieren oder mit zwei User Interfaces leben). Genau das wird uns bei SAP Solution Manager 7.2 wieder passieren.

Wieso das denn?
Gibt es noch eine Chance auf neue Vorgangsarten zu verzichten?

Das erfahren Sie genau hier:


Erinnern Sie sich noch?

Beim Upgrade von SAP Solution Manager 7.0 auf 7.1 wurden wir von SAP SE unermüdlich darauf hingewiesen, dass sich das Fundament von ITSM und ChaRM grundlegend weiterentwickelt hat und deshalb zwingend neue Vorgangsarten konfiguriert werden müssen. ‎Eine automatische Migration der Konfiguration und der Vorgangsdaten war nicht bzw. nur als Beratungslösung möglich.

‎Und nun?

Diesmal wird alles besser. Keine neue Vorgangsarten (außer für die Änderungszyklen). Und ausschließlich neue oder verbesserte Funktionen.‎

Klingt toll!

Hmmm.

‎Was hmmm?

‎Ja, klingt toll.

Aber?‎

Kein aber. Klingt wirklich toll.

Du bist so merkwürdig.‎
Stimmt das etwa gar nicht?‎

Gute Frage!‎

Es war beim Upgrade von 7.0 auf 7.1 sehr wohl möglich die alten Prozesse (die laufenden und abgeschlossenen) ins SAP Web Client UI zu heben, alle bekannten Funktionen dort verfügbar zu machen und sogar von zahlreichen Verbesserungen (z.B. Zuordnungsblock für Transport- und Landschaftsverwaltung) zu profitieren. Eine Customizing- oder Vorgangsdaten-Migration war niemals wirklich notwendig, da sich das Daten- und Objektmodell nicht verändert hatte. Ledlich das User Interface wurde ausgetauscht.‎

Wollten wir allerdings alle neue Features nutzen und gleichzeitig die alten Dokumente bewahren, mussten wir neue Vorgangsarten konfigurieren. ‎Ein Beispiel: Im SAP Solution Manager 7.0 gab es die Kategorie als einfache Dropdownbox. Im SAP Solution Manager 7.1 gibt es die Multi-Level-Kategorie (MLC). Wollten wir die alten Prozesse im Web UI vollständig betrachten, so brauchten wir die einfache Kategorie auch dort. Diese konnten wir einfach mittels SAP Web UI Konfiguration einblenden und im Gegenzug die MLC (die es ja in 7.0 noch nicht gab) ausblenden‎. Wollten wir die MLC nun jedoch für neue Vorgänge nutzen, mussten wir eine neue Vorgangsart konfigurieren, um hier die MLC einzublenden und die einfache Kategorie auszublenden. Es macht ja keinen Sinn eine Vorgangsart mit beiden Features auszustatten.

Da fällt mir gerade auf: Schlechtes Beispiel. Man hätte ja auch einfach das UI der MLC anpassen können, damit es in Level 1 die einfache Kategorie anzeigt, falls diese gepflegt ist und die MLC eben nicht. Die Kategorie ist also kein gutes Argument für die Notwendigkeit neuer Vorgangsarten. Vielleicht fällt mir ja irgendwann noch ein echtes Argument ein. Jetzt gerade aber nicht…

Ohh. Mist.‎ Hätte uns das damals mal einer gesagt.‎ Aber gut, vergeben und vergessen. Jetzt haben wir ja Solman 7.1 mit ganz vielen ITSM- und ChaRM-Transaktionen. Solman 7.2 steht vor der Tür und diesmal wird alles ganz einfach. Ach ja, da war ja was!?

Genau!

Diesmal gibt es am UI wieder einige nützliche Verbesserungen. Diese sind aber eher marginal. Außerdem gibt es einige neue Features, die aber problemlos auch für Alt-Vorgänge genutzt werden können.

Na gucke mal einer an. Ende gut alles gut.

Ich war noch nicht fertig.

Ach so. Upps. Verzeihung. Bitte fahre fort…

Diesmal gab es eine grundlegende Änderung in der Architektur. Es gibt keine Projekte und Lösungen mehr. Dafür gibt es die eine Lösung mit mehren Change-Control-Landschaften, Branches und Releasezyklen.

‎Neue Prozesse brauchen u.a. die Felder für Change-Control-Landschaft, Branch und Releasezyklus. Auch brauchen sie den Zuordnungsblock „Lösungsdokumentation“.

Alte Prozesse brauchen dagegen das Feld „Projekt“. Außerdem nutzten Sie ja die Zuordnungsblöcke „Projekte“, „Lösungen“ und „Dokumente“.

Wie passt denn das zusammen?

Gar nicht!

Und das heißt???‎ Ohhhh neiiiinnn. Nicht schon wieder neue Vorgangsarten!!!

;-(

Alles wird gut.‎

Anmerkung 1: Aktuell ist SAP Solution Manager 7.2 noch im Ramp-Up. Es besteht also noch die kleine Chance, dass da ein Kunde dabei ist, der ChaRM schon seit SAP Solution Manager 7.1 (oder noch besser 7.0) einsetzt. In diesem Fall muss sich SAP SE zu diesem Thema positionieren, was sie bisher noch nicht getan hat. Vielleicht überrascht uns SAP ja und sorgt dafür, dass das Alt-Projekt im Feld „Change-Control-Landschaft angezeigt wird und dass die Zuordnungsblöcke „Projekte“, „Lösungen“ und „Dokumente“ nur eingeblendet werden, wenn es da auch was zu sehen gibt. Dann bräuchten wir nämlich keine neuen Vorgangsarten und würden uns ein teures und aufwendiges Migrationsprojekt sparen können.

Anmerkung 2: SAP SE wird eine automatische Migration für den Projekt- und Lösungs-Content anbieten, die sogenannte „Content-Aktivierung“. Außerdem wird SAP SE eine manuelle Migration der ChaRM-Projekte mit ihren Logischen Komponenten zu Change-Control-Landschaften, Branches, Logische Komponentengruppen und Logische Komponenten anbieten. Sollten also ChaRM-Alt-Vorgänge mit einem ChaRM-Projekt verknüpft sein, für das sowohl der Content als auch die Change-Control-Landschafts-Definition migiriert werden, so können diese wie neue Vorgänge betrachtet (und sofern noch nicht abgeschlossen) bearbeitet werden. Problematisch sind und bleiben jedoch Vorgänge die auf ChaRM-Projekten basieren, die nicht (vollständig) migriert werden. Laufende Wartungsprojekte werden in der Regel migriert werden, vergangene Implementierungs- oder Upgradeprojekte dagegen wahrscheinlich eher nicht.

class based exception handling (ABAP OO exceptions)

There exist two kinds of exception handling in ABAP OO – The classical one and the object orientated one.

The classical one is similar to exception handling used by function modules: We can raise an exception together with a message (using ABAP statement „message … raising“). The caller need to catch and to handle this exception.

The object orientated exception solution (raised using the ABAP statement „RAISE EXCEPTION TYPE „) has the important positive issue that the caller doesn’t need to handle the exception. If the caller is not able or willing to handle the exception, it will be propagated to the caller of the caller automatically.

However, the object orientated exception is more complicated in cases we just want to throw an error message because we need to create an exception class first.

Good News: This is very simple.

  1. We can use or inherit from exception class CX_T100_MSG if we know message id and number at runtime only and these information are available in variables like SY-MSGID, SY-MAGNO, SY-SMG-TY, SY-MSGVX.
  2. We can use or inherit from class CX_RSR_BAPIRET2 if we have message information available in a BAPIRET2 structure used by many BAPI function modules. Since CX_RSR_BAPIRET2 is final, we cannot inherit from it. Therefore we once need to create a copy first.
  3. If we know message id and numbers (can be several!) at design time but message parameters only at run time, we can create an exception class based on interface IF_T100_MESSAGE (or simply flag „With Message Class“ at creation). For details, we can use the following guides:
    http://freesapabap.blogspot.fr/2014/12/oo-abap-exception-using-message-class.html
    http://zevolving.com/2013/04/exception-class-to-use-messages-from-t100/

SAP CRM Transaction Flow Analyzer for SAP Solution Manager 7.1 and 7.2 ITSM and ChaRM

Requirement

In SAP Solution Manager we are using IT Service Management and Change Request Management. We are using a lot of Transaction Types (Incident, Problem, Service Order, Service Request, Knowledge Articles, Change Request, Normal Change, Urgent Change, Administrative Change, General Change, Defect Correction) which are linked to each other using the Document Flow feature.

To understand the whole end-to-end process it is needed to get an overview of all involved processes and there linkage to each other.

The assignment block „Related Transactions“ or „Transaction History“ is a flat list showing only the direct assigned Transactions which are mostly the direct predecessor or successors.

We want to have a feature to see all Transactions and their connections in one screen. In former SAP CRM based on SAP GUI there was such a feature as part of the Document Flow tab to show the Document Flow in a tree view. But the SAP Web Client UI solution don’t have such a feature yet.

Good News: This feature is available in SAP Solution Manager 7.1 (with little development) and 7.2 (maybe without development).

SAP CRM 7.0 Standard Solution

After implementing SAP note 2272867 – Transaction History Treeview format (including some manual activities to allow dynamic navigation to Transaction Analyzer application, to define icons for every used process type and to adjust UI configuration of Transaction Analyzer) there is a new button „Transaction Analyzer“ available in the Transaction History tab. If we click this button, we could navigate to the Transaction Analyzer app which is visualizing the whole Transaction Flow based on the current Transaction as tree view.

However, there exist several kind of „Transaction History“ or „Related Transactions“ assignment blocks. Currently this solution is working for view BTDOCFLOW/HdrDocFlow. resp. window BTDOCFLOW/HdrWindowOVE only.

This solution is not working for the „Related Transactions“ assignment block of ChaRM, because here UI component AIC_CM_REL_TSER/MainWindow or BTDOCFLOW/MainWindow is used instead of BTDOCFLOW/HdrWindowOVE.

For ITSM this is working fine, if BTDOCFLOW/HdrWindowOVE is used instead of SRQM_REL_TSER/MainWindow.

In SAP Solution Manager 7.1 SP 12 or higher we can find the Transaction Analyzer independently in the „Service Operations“ Work Center Page of Business Role „SOLMANPRO“. However here we have to search for a Business Transaction first before we can navigate thru the Transaction Flow of it.

SAP Solution Manager 7.2 Standard Solution

In SAP Solution Manager 7.2 there is a tree view feature integrated in the Inbox search. However, this feature is similar, but not equal to the Transaction Analyzer feature. At the moment it is not known whether the integrated Transaction Analyzer is available in SAP standard of SAP Solution Manager 7.2 ITSM and ChaRM.

SAP Solution Manager 7.1 Development Solution

We want to use solution AIC_CM_REL_TSER/MainWindow or SRQM_REL_TSER/MainWindow. But we also want to have the feature „Transaction Analyzer“ available.

This is possible with only little development:

1. Please implement SAP note 2272867 – Transaction History Treeview format (including manual activities).

2. Please enhance method DO_PREPARE_OUTPUT of class CL_AIC_CM_R_RELATEDTSERVI_IMPL and add following code snippet to the end:

*Show "Transaction Analyzer" button in toolbar.
*Code snippet was copied from CL_BTDOCFLO_HDRDOCFLOW_IMPL->DO_PREPARE_BUTTONS (BTDOCFLOW/HdrDocFlow) at 11.02.2016.

data:
ls_button like line of mt_toolbar_buttons.

CLEAR ls_button.
ls_button-text     = cl_wd_utilities=>get_otr_text_by_alias( 'CRM_UIU_BT/TRANSACTIONANALYZER' ). "#EC NOTEXT
ls_button-on_click = 'TRANSACTION_ANALYZER'.            "#EC NOTEXT
ls_button-enabled  = abap_true.
ls_button-id       = ls_button-on_click.
APPEND ls_button TO mt_toolbar_buttons.

3. Please repeat step (2) for method DO_PREPARE_OUTPUT of class CL_SRQM_REL_RELATEDTSERVI_IMPL if you need this feature for SRQM_REL_TSER/MainWindow as well. In current release you have to enhance super class CL_CRM_UIU_TVEL_WD_CONTROLLER because CL_SRQM_REL_RELATEDTSERVI_IMPL has no own method implementation.

4. Please enhance method DO_HANDLE_EVENT of class CL_SRQM_REL_RELATEDTSERVI and add following code snippet to the end:

*Call Transaction Analyzer.
*Code snippet was copied from CL_BTDOCFLO_HDRDOCFLOW_IMPL->EH_ONANALYZE (BTDOCFLOW/HdrDocFlow) at 11.02.2016.

if htmlb_event_ex->event_server_name = 'TRANSACTION_ANALYZER'.

DATA:
lv_dyn_nav_supported TYPE abap_bool,
lr_nav_serv          TYPE REF TO if_crm_ui_navigation_service,
lr_nav_descr         TYPE REF TO if_bol_bo_property_access,
* lr_controller TYPE REF TO cl_btdocflo_bspwdcomponen_impl, "deleted during copy from original
lr_col               TYPE REF TO if_bol_bo_col,
lr_entity            TYPE REF TO cl_crm_bol_entity,
lr_current           TYPE REF TO if_bol_bo_property_access,
lr_coll_wr           TYPE REF TO cl_bsp_wd_collection_wrapper.

CONSTANTS
lc_display TYPE crmt_ui_actions VALUE 'B'. "create

cl_crm_ui_descriptor_obj_srv=>create_ui_object_based(
EXPORTING iv_ui_object_type   = if_crm_uiu_object_types_const=>gc_crmdfa
iv_ui_object_action = lc_display
RECEIVING rr_result           = lr_nav_descr ).

CHECK lr_nav_descr IS NOT INITIAL.

CREATE OBJECT lr_col
TYPE
cl_crm_bol_bo_col.

lr_col->insert( iv_bo    = lr_nav_descr
iv_index = 1 ).

* check if navigation to email creation is possible
lr_nav_serv = cl_crm_ui_navigation_service=>get_instance( ).
TRY.
lv_dyn_nav_supported = lr_nav_serv->is_dynamic_nav_supported(
ir_descriptor_object = lr_nav_descr ).
CATCH cx_sy_ref_is_initial.
ENDTRY.

IF lv_dyn_nav_supported = abap_true.
* Get the current entity
* lr_controller ?= me->comp_controller. "deleted during copy from original
* lr_coll_wr = lr_controller->typed_context->parentnode->get_collection_wrapper( ). "deleted during copy from original
lr_coll_wr = me->typed_context->btadminh->get_collection_wrapper( ).               "added during copy from original
lr_entity ?= lr_coll_wr->get_current( ).
CHECK lr_entity IS BOUND.
lr_entity = lr_entity->get_parent( ).
lr_current ?= lr_entity.
CHECK lr_current IS BOUND.

CHECK lr_col IS BOUND.
lr_col->add( lr_current ).

* navigate
lr_nav_serv = cl_crm_ui_navigation_service=>get_instance( ).
lr_nav_serv->navigate_dynamically( iv_data_collection = lr_col ).
ENDIF.

endif.

Note: I prefer to implement these enhancements using the implicit enhancement technique. Of course, there is the possibility to use the SAP Web Client UI enhancement technique. But then we have to enhance the UI components and views first to be able to enhance the mentioned view controllers. The development effort will be the same. But the support effort will be higher especially for future upgrades. Still now, there is no way to upgrade SAP Web UI enhancements in a proper way. UI component repositories can be adjusted automatically, that is fine. But there is no check whether method redefinitions/enhancements needs to be checked as well and there is no way to adjust resp. merge view page content (html) during upgrade.

SAP Solution Manager 7.2 Management von Bearbeitungszeiten (Management of Processing Times)

Das Management von Bearbeitungszeiten ermöglicht Ihnen die Überwachung der Reaktions- und Bearbeitungszeiten Ihrer Serviceorganisation. Sie können damit die Einhaltung der Vereinbarungen kontrollieren, die Sie mit Ihren Kunden, Partnern und Ihrer eigenen Organisation getroffen haben. Das Management von Bearbeitungszeiten soll Ihnen dabei helfen, Ihre Prozesse sowie Ihr Vertragsdesign zur Erbringung von Serviceleistungen zu optimieren.

Sie können einzelne Zeiträume festlegen, die Ihren Servicemitarbeitern zwischen dem Beginn und dem Abschluss eines oder mehrerer Bearbeitungsschritte zur Verfügung stehen. Mit diesem Framework können Sie die geplanten mit den tatsächlichen Reaktions- und Bearbeitungszeiten vergleichen. Pausenzeiten (z.B. Keine Arbeit an Wochenenden oder Status „Kundenaktion“) werden entsprechend berücksichtigt.

Beispiele:

Sie haben mit Ihren Kunden Service Level Agreements (SLAs) hinsichtlich Erstreaktionszeit und Gesamtbearbeitungszeit abhängig vom Service und der Priorität vereinbart. Sie möchten diese nun überwachen, reporten und ggf. eskalieren. Auβerdem haben Sie innerhalb Ihrer Organisation Operational Level Agreements (OLAs) vereinbart. Zum Beispiel möchten Sie Erstreaktionszeit und Gesamtbearbeitungszeit für First Level Support (Service Desk), Second Level Support (interne Anwendungsbetreuung) und Third Level Support (externer Support inkl. SAP AGS) separat messen, überwachen, reporten und im Bedarfsfall eskalieren.

Sie haben mit Ihren Kunden und ihrer Organisation SLAs und OLAs hinsichtlich Erstreaktionszeit und Gesamtbearbeitungszeit für die Bearbeitung von Änderungsvorgängen vereinbart. Zum Beispiel möchten Sie sicherstellen, dass Ihre Entwickler zeitnah mit der Entwicklung beginnen und die ursprüngliche Aufwandsschätzung einhalten. Gleiches gilt für die Tester auf Kundenseite. Auch Ihre Führungskräfte sollten zeitnah und zügig Genehmigungen erteilen. Zudem möchten Sie sicherstellen, dass Dringende Änderungen auch wirklich schnell umgesetzt, getestet und produktiv gesetzt werden und nicht monatelang im System schlummern.

Ihnen reichen die KPIs IRT (Initial Response Time) und MPT (Maximum Process Time) prinzipiell aus. Allerdings hätten Sie gern noch feinere Abstufungen und nicht nur „Grün“, „Gelb“, „Rot“.

Unterstützte Szenarien:

  • IT Service Management
  • Change Request Management

Features:

  • Definition beliebig vieler KPIs für Reaktion und Bearbeitung (Es können mehrere KPIs definiert und mehrere Messungen parallel durchgeführt werden.)
  • Gruppierung von KPIs nach Unternehmensgrund und Partner
  • Festlegen von geplanten Dauern für Reaktion und Bearbeitung
  • Festlegen von Pausenzeiten (Bereitschaftszeiten), Startstatus, Endstatus, Pausenstatus sowie Kriterien für den Neustart oder die Fortsetzung der Messung
  • Findung relevanter Ziel-/Planwerte abhängig von Geschäftspartner, Vertrag, Produkt, Konfigurationselement, Organisation, Priorität, Kategorie, …
  • Definition von Schwellenwerten inkl. Anzeige als Grafikelement (Icon) und inkl. Benachrichtigung bzw. Eskalation
  • Dynamische Berechnung von Terminen, Dauern, Schwellenwerten und KPI Substatus (Initial, Wird ausgeführt, Angehalten, Abgebrochen, Gestoppt)

Abgrenzung:

Im SAP Solution Manager IT Service Management gibt es das Feature „Service Level Agreement Management“ (SLAM). Auch das SAP CRM bietet ein solches Feature an. Beide Lösungen sind funktional komplett gleich und technisch zum Groβteil identisch, in einigen Details jedoch grundlegend verschieden. Beide Lösungen bieten bei weitem nicht die Flexibilität wie das Feature zum Management von Bearbeitungszeiten. Mittels SLAM sind nämlich nur zwei KPIs, nämlich IRT (Initial Response Time) und MPT (Maximum Process Time) pro Geschäftsvorgang messbar.

Weitere Informationen:

http://help.sap.com/saphelp_crm700_ehp03/helpdata/de/3f/72d7442e394ec3bdefb2f4a2373ca6/content.htm?frameset=/de/3f/72d7442e394ec3bdefb2f4a2373ca6/frameset.htm&current_toc=/de/df/379cd1ec6c4de5984f38bd30b03a9c/plain.htm&node_id=43&show_children=true#jump43

http://help.sap.com/saphelp_crm700_ehp03/helpdata/de/46/42bdf3e3940db9e10000000a1553f6/content.htm?frameset=/de/46/42bdf3e3940db9e10000000a1553f6/frameset.htm&current_toc=/de/df/379cd1ec6c4de5984f38bd30b03a9c/plain.htm&node_id=51&show_children=true#jump51

http://help.sap.com/saphelp_crm700_ehp03/helpdata/de/37/dd77e9a05743acb52d270b7fc4f78d/content.htm?frameset=/de/3f/6e181689414a218c6d4a9e25436174/frameset.htm&current_toc=/de/df/379cd1ec6c4de5984f38bd30b03a9c/plain.htm&node_id=56

http://help.sap.com/saphelp_sm72_sp01/helpdata/de/59/7185331da34b1c84441cc50160279b/content.htm?frameset=/de/7e/cf1961d7b84245bdc4302204512c32/frameset.htm&current_toc=/de/37/24fe53582e0114e10000000a174cb4/plain.htm&node_id=829

SAP Solution Manager 7.2 Rangfolge (Transaction Ranking)

Sie sind noch nicht überzeugt, dass der SAP Solution Manager 7.2 einen Mehrwert für Sie bieten und sich ein zügiger Upgrade lohnen könnte? Nun heute präsentiere ich Ihnen ein ITSM und ChaRM Feature, das Ihre Meinung definitiv ändern wird!

Die Rangfolge:

Anhand der Rangfolge können Sie Servicevorgänge klassifizieren. Die Rangfolge ist in allen Kontexten sichtbar, in denen eine schnelle Validierung von Servicevorgängen erforderlich ist, z.B. in der Suchergebnisliste, in der Inbox oder im Arbeitsvorrat. Durch das Sortieren der Suchergebnisliste bietet die Rangfolge von Vorgängen eine Entscheidungshilfe für die Einplanung von Support-Aufgaben und informiert die Benutzer über die Wichtigkeit, einen bestimmten Servicevorgang zu bearbeiten.

Beispiel:

Die Rangfolge einer Störung soll abhängig von deren Priorität sein. Sie soll sich jedoch erhöhen, wenn der Vorgang eskaliert wird oder wenn das angeforderte Ende näher rückt. Wenn jedoch der Status auf „Kundenaktion“ steht, soll die Rangfolge herabgesetzt werden, da ja gerade eh nichts getan werden kann.

Die Rangfolge einer Änderung soll abhängig von deren Priorität sein. Sie soll sich jedoch erhöhen, wenn der Implementierungsaufwand gering ist (sogenannter Quick-Win). Wenn jedoch Abhängigkeiten zu anderen Änderungen bestehen und diese noch nicht fertig implementiert sind oder wenn die Konzeption noch nicht abgeschlossen ist, soll die Rangfolge herabgesetzt werden, da mit der Implementierung eh noch nicht begonnen werden kann.

Weitere Informationen:

http://help.sap.com/saphelp_sm72_sp01/helpdata/de/07/30d3544039713be10000000a44176d/content.htm?frameset=/de/eb/aed653bb13af20e10000000a4450e5/frameset.htm&current_toc=/de/37/24fe53582e0114e10000000a174cb4/plain.htm&node_id=785

http://help.sap.com/saphelp_crm700_ehp03/helpdata/de/42/e61cfcfcd84a968eda69d0302e1ffe/content.htm?frameset=/de/3a/cea8aaadc44f3fa65c54053fd07c7a/frameset.htm&current_toc=/de/df/379cd1ec6c4de5984f38bd30b03a9c/plain.htm&node_id=28

SAP Solution Manager 7.2 Notizen (Notes, Texts)

Kennen und nutzen Sie im IT Service Management (ITSM) oder Change Request Management (ChaRM) den Zuordnungsblock „Textverwaltung“ bzw. „Text Management“ (UI-Komponente AIC_LONGTEXT)? Nun dann habe ich jetzt eine schlechte Neuigkeit für Sie: Es gibt ihn im SAP Solution Manager 7.2 (möglicherweise) nicht mehr (lange).

Oh shit!!!
Was nun?
Wie soll ich denn da meine Texte pflegen?

Keine Panik. Ich habe auch eine gute Nachricht für Sie: Dieser Zuordnungsblock ist jetzt Teil des SAP CRM Standards und bietet Ihnen Hyperlinks, Textvorlagen, Schlüsselwörter (Keywords) und textartspezifisch aktivierbare Formatierfunktionalitäten (Fett, Kursiv, Unterstreichen, Linksbündig, Rechtsbündig, Blocksatz, Aufzählung, …).

Und wo ist der Haken?

Da ist er: Die Textvorlagen werden anders gespeichert, so dass eine manuelle Migration notwendig ist. Das Formatierungsfeature muss explizit pro Textart aktiviert werden.

Wie geht es weiter?

Im Rahmen des Customer Influence Programms „CRM 2016“ wurde ein Projekt „New Texts in SAP CRM“ gestartet um zahlreiche weitere Anforderungen zu bündeln und umzusetzen. Geplant ist eine Auslieferung Anfang 2017 als Support Package des SAP CRM 7.0 EhP 3 (und folglich auch des SAP Solution Manager 7.2). Folgende Improvements sind geplant:

  • Multi-log capabilities (Currently only one log is supported)
  • Rich-text capabilites (currently CRM and SM 7.1/7.2 support only bold, underline and italic)
  • Editable header/item note with rich-text capabilities (currently only plain text is supported here)
  • Copy & Paste of rich-text (is currently not supported)
  • Copy & Paste of images (is currently not supported)

Weitere Informationen:

http://help.sap.com/saphelp_sm72_sp01/helpdata/de/1c/2c614f5eb5443abd4e14a56e555d3b/content.htm?frameset=/de/07/30d3544039713be10000000a44176d/frameset.htm&current_toc=/de/37/24fe53582e0114e10000000a174cb4/plain.htm&node_id=796

http://help.sap.com/saphelp_crm700_ehp03/helpdata/de/9d/91da4a9ec44865821709e38d00c25e/content.htm?frameset=/de/9d/91da4a9ec44865821709e38d00c25e/frameset.htm&current_toc=/de/df/379cd1ec6c4de5984f38bd30b03a9c/plain.htm&node_id=37&show_children=true#jump37

https://influence.sap.com/ct/ct_a_view_blog.bix?c=2A9FA46A-2F06-4E16-AB9A-44FF3A8C873D&bID=6830C027-84E8-4CD5-B706-AE499E6EDE1F

https://influence.sap.com/ct/getfile.bix?f=D008D4F6-F468-475F-86FE-49C65361F003&c=2A9FA46A-2F06-4E16-AB9A-44FF3A8C873D

SAP Solution Manager 7.2 Abonnements & Benachrichtigungen (Subscriptions & Notifications)

Das Benachrichtigungs-Framework ermöglicht es Ihnen, Ihre Anwender über Status und Fortschritt der Geschäftsvorgänge auf dem Laufenden zu halten. Sie können für sich selbst oder eine Gruppe von Personen ein Abonnement für einen Vorgang oder mehrere Vorgänge anlegen.

Beispiele:

  • Sie möchten sicherstellen, dass alle an einem Änderungsvorgang involvierte Parteien bei einer Änderung dieses Vorganges informiert werden.
  • Sie sind der zentrale Ansprechpartner für einen Kunden. Sie möchten automatisch informiert werden, wenn der Kunde Ihren Service-Desk kontaktiert.
  • Sie sind Anforderer einer Änderung. Sie möchten über den Fortschritt der Implementierung dieser Änderung informiert werden.
  • Sie sind der Bearbeiter einer Störung. Sie möchten informiert werden, wenn kritische Bearbeitungszeitschwellenwerte erreicht werden.

Unterstützte Szenarien:

  • IT Service Management
  • Change Request Management

Features:

  • Abonnement definieren
  • (Abonnement genehmigen)
  • Abonnement abbonieren
  • Einzelnen Geschäftsvorgang abonnieren

Bedingungsattribute für Abonnements:

  • Partnerfunktionen
  • Priorität
  • Bearbeitungszeiten/Eskalationen

Inhalt:

  • Kundenspezifische personalisierte HTML-E-Mail-Formulare mit Platzhaltern

Kommunikationskanal:

  • E-Mail
  • SMS
  • Alert
  • Web-Service

Empfänger:

  • Benutzer
  • Geschäftspartner
  • direkte Mitarbeiter einer Organisationseinheit

Abgrenzung und Ausblick:

  • Endanwender haben durch dieses Framework die Möglichkeit, sich bei Bedarf über bestimmte Transaktionsänderungen zu informieren. Die Funktionalität ist ähnlich zu den Subscription-Funktionalitäten von Collaborations-Plattformen (z.B. SCN).
  • Es ist möglich, konkrete Empfänger direkt am Abonnement zu hinterlegen. Ein explizites Abonnieren ist dann nicht mehr notwendig. Auch ist es möglich, das Abbestellen von bestimmten Abonnements zu verhindern. Empfänger haben dann keine Möglichkeit, die Benachrichtigung abzuwählen.
  • Unklar ist, ob als Empfänger nur statische Nutzer bzw. Nutzergruppen gewählt werden können, oder ob auch dynamische Empfänger (z.B. Partnerfunktionen des jeweiligen Vorganges) möglich sind. Unklar ist auch, ob die Abonnenments transportierbar sind.
  • Würde der vorangehende Punkte positiv beantwortet werden können, so lieβen sich durch dieses Framework nahezu sämtliche (durch PPF-Aktionen ausgelöste) E-Mail-Benachrichtigungen sehr elegant ablösen. Ansonsten eben nicht: Ist die Benachrichtigung vom Typ Push bzw. Pflicht und nur für einen dynamisch ermittelbaren Empfängerkreis, dann nutze das PPF-Aktions-Framework. Ist die Benachrichtigung vom Typ Pull bzw. Optional oder eher für einen statischen Empfängerkreis (inkl. Alle), dann nutze das Benachrichtigungs-Framework.
  • Unklar ist auch, ob das Framework nur Geschäftsvorgänge unterstützt, oder ob auch Stammdatenänderungen (z.B. Geschäftspartnerdaten) abonniert werden können. Dieses Feature wird ja bereits von zahlreichen Collaborations-Plattformen angeboten um Datenmissbrauch (Hacking) zu unterbinden und ist folglich auch hier sinnvoll.

Weitere Informationen:

SAP Solution Manager 7.2 Schwarzes Brett (Bulletin Board)

Das Bulletin Board ermöglicht das Hinterlegen von objektbezogenen Kurzinformationen. Diese Informationen werden angezeigt, sobald mit diesen Objekten gearbeitet wird und die definierten Voraussetzungen (Gültigkeit, Zielgruppe, Berechtigungen) erfüllt sind.

Beispiele:

  • Ein Drucker steht vorrübergehend nicht zur Verfügung. Sie möchten alle Meldungserfasser und Meldungsbearbeiter, die einen Incident zu diesem Konfigurationselement eröffnen oder bearbeiten wollen, proaktiv informieren.
  • Der CutOver eines Groβprojektes steht kurz bevor. Sie möchten alle Entwickler, die einen Änderungsvorgang bearbeiten wollen, proaktiv über den Meilenstein und den damit verbunden Code-Freeze informieren.
  • Ein Anwender möchte einen Incident für ein konkretes Serviceteam erstellen. Sie möchten dem Meldungserfasser Informationen zu dem Serviceteam zur Verfügung stellen, die sich auf Verfügbarkeitszeiten, Bearbeitungszeiten / Eskalationen und üblicherweise zuordenbare Themen beziehen.

Unterstützte Szenarien:

  • IT Service Management
  • Change Request Management
  • Master Data Management (SAP CRM Geschäftspartner)

Unterstützte Objekte:

  • Geschäftspartner
  • IBase Komponenten (LMDB Objekte + CMDB Objekte)

Eigenschaften:

  • Gültigkeitszeitraum
    -> Temporäre oder dauerhafte Informationen verwaltbar.
  • Priorität
    -> Bei „sehr hoch“ erscheint ein Popup.
  • Zielgruppe/Kontext (Geschäftspartnerbeziehung, Partnerfunktion, UI-Objekt)
    -> Separierung nach ITSM und ChaRM oder Meldungserfasser und -bearbeiter möglich.
  • Sichtbarkeit (Ich, Mein Team, Alle)
    -> Private, teaminterne oder allgemeine Informationen verwaltbar.

Aktuelle Grenzen:

  • Das Hinterlegen von Kurznachrichten an Servicevorgänge (Sichtbar in allen verknüpften Vorgängen) ist nicht möglich. Somit ist es nicht möglich, Kurzinformationen von Störungen über Probleme, Änderungsanträge zu Änderungsdokumenten zu kommunizieren.
  • Aus gleichem Grund ist es nicht möglich, projektbezogene Kurzinformationen an Änderungs- und Releasezyklen (und Branchen) zu hinterlegen, die dann in allen verknüpften Änderungsvorgängen sichtbar sind.
  • Kurzinformationen können nicht abhängig von der Kategorie oder dem Anwenderstatus konfiguriert bzw. angezeigt werden. Somit ist es nicht möglich Informationen nur in der Entwicklungsphase oder nur kurz vor Produktivsetzung anzuzeigen.
  • Die Kurznachricht an der IBase-Komponente wird nur angezeigt, wenn diese direkt im Vorgang verwendet wird. Kurzinformationen zum Entwicklungs- oder Qualitätssicherungssystem werden somit nicht im ChaRM angezeigt, da hier stets nur das Produktionssystem direkt referenziert wird.

Ideen für projektbezogene Kurzinformationen:

  • IBase-Komponente: Sichtbar für alle. Keine Separierung möglich.
  • Vorgangsart/Partnerfunktion: Projekte und Wartung nutzen verschiedene Vorgangsarten (und Partnerfunktionen). Dann ist Separierung Projekt vs. Wartung möglich.
  • Geschäftspartner: Identifizierung des Projektes durch spezielle Partnerfunktion „Projekt“ mit speziellem Geschäftspartner. Dann ist Separierung der einzelnen Projekte möglich.

Ideen für statusbezogene Kurzinformationen:

  • UI-Objekttyp + Subobjekttyp: Subobjekttyp ist aktuell die Vorgangsart. Dies kann mittels Entwicklung zu „Vorgangsart_Kategorie_Status“ geändert werden. Dann wären auch kategorie- und statusabhängige Kurzinformationen möglich. Als Nebeneffekt wären dann auch statusabhängige UI-Konfigurationen möglich, was mit Blick auf statusabhängige Pflicht- und Anzeigefelder einen nützlichen Mehrwert darstellen würde.

Weitere Informationen:

DSAG Thementage SAP Solution Manager 7.1 / 7.2 – Es sind noch Plätze frei

Am 26./27.01.2016 finden die diesjährigen DSAG-Thementage zum SAP Solution Manager statt. Hier werden von SAP SE detaillierte Informationen zum SAP Solution Manager 7.2 präsentiert.

Aktuell sind noch 45 Plätze frei. Der Anmeldeschluss ist der 21.01.2016.

Die Teilnahme lohnt sich!

https://www.dsag.de/veranstaltungen/2016-01/thementag-sap-solution-manager-71-72

Bei den DSAG Technologietagen und dem DSAG Jahreskongress wird der SAP Solution Manager 7.2 sicherlich ebenso die führende Rolle spielen, wie bei den beiden separaten Arbeitskreistreffen.

http://techtage.dsag.de/
http://kongress.dsag.de/
https://www.dsag.de/veranstaltungen/2016-06/ak-sap-solution-manager-treffen
https://www.dsag.de/veranstaltungen/2016-11/ak-sap-solution-manager-treffen

Und dann gibt es ja noch die Arbeitsgruppen des Arbeitskreises Solution Manager, mit jeweils eigenen Events und Themen (rund um den SAP Solution Manager 7.2).

https://www.dsag.de/arbeitsgremien/ag-e2e-testing
https://www.dsag.de/arbeitsgremien/ag-testmanagement
https://www.dsag.de/arbeitsgremien/ag-projektmethodik
https://www.dsag.de/arbeitsgremien/ag-sap-solution-manager-architektur
https://www.dsag.de/arbeitsgremien/ak-infrastruktur-betrieb
https://www.dsag.de/arbeitsgremien/ak-ccc-service-support

Das Jahr 2016 wird somit definitiv nicht langweilig…

SAP Solution Manager 7.2 – Ramp-Up erfolgreich gestartet!

Am 15. Dezember 2015 hat das Ramp-Up für den SAP Solution Manager 7.2 erfolgreich begonnen. Seit diesem Zeitpunkt stehen für Rampup-Kunden und Nicht-Rampup-Kunden detaillierte Informationen zum neuen Release zur Verfügung:

SCN -> SAP Solution Manager 7.2 Ramp-Up
Kickoff-Video (Offizieller Startschuss)

SAP Help -> SAP Solution Manager 7.2 Guides and Documentations
Leitfäden und Dokumentationen (inkl. SAP Online Library)

SAP Early Knowledge Transfer -> SAP Solution Manager 7.2 Learning Maps
Learning Maps (Videos und Powerpoints zu neuen und veränderten Features)

SCN -> Solution Manager 7.2 Information
Cloud-Angebot (kostenfreies Ansehen und Ausprobieren des neuen Releases)

SCN -> CRM Web Client Improvements – beneficial also in SAP Solution Manager 7.1
Downport ausgewählter Improvements (SAP-Hinweise für Solman 7.1)

Message Check on Save

Identify Message Class and Number
You can activate extended message tracking by setting user parameter BSPWD_USER_LEVEL (and CRM_USER_LEVEL) to value 9 in transaction SU3 resp. SU01. Now you will see the wanted details on mouse hover of the message in Web UI.

Correct Error Flag
Sometimes it happen, that a Business Transaction contains no error messages but is still flagged as erroneous.

This inconsistency can be solved using report CRM_MESSAGES_CHECK like mentioned in SAP Note „1971092 – Wrong System Status ‚Contain Errors'“. However this report is not able to identify all issues: If a business transaction has no message log but is flagged as erroneous, it will not be identified. But if the message log exists and is empty it will be identified.

Error Message Replacement
Sometimes an error message shown in SAP Web Client UI might be too technical. In this case it is possible to replace it by a user-friendly one. The SAP Web Client UI standard feature “Message Replacement” can be used here.

  1. (Activate business function UI_FRW_1 and UI_FRW_1_DOCU in transaction SFW5.)
  2. Assigning function profile MSG_REPLACE to your business role.
  3. Create own message classes and messages using transaction SE91.
  4. Configure all wanted message replacements SPRO -> CRM -> UI Framework -> UI Framework Definition -> Define Messages to Be Replaced.

Mandatory Field Check on Save
Sometimes fields are configured as mandatory in SAP Web Client UI. In case of empty mandatory fields end-users will get an error message. It is still possible to save. To avoid saving you can activate the “SAP Web Client UI Mandatory Field Check on Save” feature.

  1. Configure your Web UI and mark fields as mandatory.
  2. Maintain parameter CRMORDER-NO_SAVE_MAND_FIELDS in configuration table SMOFPARSFA.

More details:

  • SAP Note „1353553 – Opportunity: Behavior of mandatory fields in Web UI“
  • http://scn.sap.com/message/14553524

Message Check on Save
Sometimes business transactions contains error messages. Usually end-users can still save. In most cases this is acceptable because status change to next status is not allowed in case of errors. In some cases saving is needed, because some activities are performed on save which might resolve the error together with the error message. However, in some seldom cases save shall be blocked for certain error messages.

One example is COM_PARTNER 145 „Business Partner is not a valid business partner.“

In SAP standard there exist no feature to disallow saving dependent on an certain error message. Therefore you have to develop it by creating a configuration table containing fields CLIENT, OBJECT_NAME, MSGTY, MSGID, MSGNO, LANGU and TEXT and by implementing BADI ORDER_SAVE (method CHECK_BEFORE_SAVE).

  1. Check if dialog mode is active using function module COM_PARTNER_DIALOG_MODE_CHECK (Check should only be performed in case of online/foreground processing)
  2. Check if SAP Web Client UI is active using method cl_thtmlb_util=>get_business_role_name (Check should only be performed in case of online/foreground processing)
  3. Select all configured messages using view /GLB/MECOS_R.
  4. Get all messages for current business transaction using function module CRM_MESSAGES_SEARCH.
  5. Get details for all messages using function module CRM_MESSAGES_GET_MSG_INFO.
  6. Check whether business transaction contains configured messages. Check on Object Name, Message Type, Message Class and Message Number. All fields can be left empty in configuration which means “all”.
  7. Cancel save by raising exception DO_NOT_SAVE. If an error message is configured transfer this customer specific error message.
METHOD if_ex_order_save~check_before_save.

DATA:
lv_profile    TYPE crmt_ui_profile,
lt_message    TYPE TABLE OF /glb/mecos_r,
* ls_msg_idno TYPE bal_s_idno,
* lt_msg_idno TYPE bal_r_idno,
lt_msg_handle TYPE bal_t_msgh,
ls_msg_info   TYPE crmt_msg_info,
ls_msg        TYPE bal_s_msg.

FIELD-SYMBOLS:
<fs_message>    LIKE LINE OF lt_message,
<fs_msg_handle> LIKE LINE OF lt_msg_handle.

*-------------------------------------------------------------------------

*Get dialog mode state.
CALL FUNCTION 'COM_PARTNER_DIALOG_MODE_CHECK'
EXCEPTIONS
no_dialog = 1
OTHERS    = 2.

*We are in dialog mode (online/foreground processing).
CHECK sy-subrc = 0.

*Get Business Role
CALL METHOD cl_thtmlb_util=>get_business_role_name
RECEIVING
rv_role = lv_profile.

*We are in SAP Web Client UI (online/foreground processing).
CHECK lv_profile IS NOT INITIAL.

*Alle registrierten Fehlermeldungen lesen.
SELECT *
INTO TABLE lt_message[]
FROM /glb/mecos_r.

*There are some messages configured.
CHECK lt_message[] IS NOT INITIAL.

**Build search conditions.
* REFRESH lt_msg_idno[].
* LOOP AT lt_message ASSIGNING <fs_message>.
*
* ls_msg_idno-low-msgid = <fs_message>-msgid.
* ls_msg_idno-low-msgno = <fs_message>-msgno.
* CLEAR ls_msg_idno-high.
* ls_msg_idno-sign = 'I'.
* ls_msg_idno-option = 'EQ'.
* APPEND ls_msg_idno TO lt_msg_idno.
*
* ENDLOOP.

*Search for matching messages.
CALL FUNCTION 'CRM_MESSAGES_SEARCH'
EXPORTING
* it_r_msgidno = lt_msg_idno[]
iv_ref_object   = iv_guid
iv_ref_kind     = 'A'
* IV_CALLER_NAME =
* IT_LOGICAL_KEYS =
* IV_PROBCLASS =
* IV_DETLEVEL =
IMPORTING
et_msg_handle   = lt_msg_handle
EXCEPTIONS
appl_log_error  = 1
error_occurred  = 2
OTHERS          = 3.

*There should never occur an error here.
*We found some messages.
CHECK sy-subrc = 0 AND lt_msg_handle[] IS NOT INITIAL.

LOOP AT lt_msg_handle ASSIGNING <fs_msg_handle>.

*Get message details.
CALL FUNCTION 'CRM_MESSAGES_GET_MSG_INFO'
EXPORTING
is_msg_handle           = <fs_msg_handle>
* IV_GET_CALLER_NAME = TRUE
IMPORTING
es_info                 = ls_msg_info
es_msg                  = ls_msg
EXCEPTIONS
not_found               = 1
wrong_context_structure = 2
data_error              = 3
OTHERS                  = 4.

*There should never occur an error here.
CHECK sy-subrc = 0.

*Check all details.
LOOP AT lt_message
ASSIGNING <fs_message>
WHERE ( object_name = ls_msg_info-object_name OR object_name IS INITIAL ) AND
( msgty       = ls_msg-msgty            OR msgty       IS INITIAL ) AND
( msgid       = ls_msg-msgid            OR msgid       IS INITIAL ) AND
( msgno       = ls_msg-msgno            OR msgno       IS INITIAL ).

*Check IV_CALLER_NAME.

*All details are correct.
CHECK sy-subrc = 0.

*Prepare own error message for save abort.
IF <fs_message>-text IS NOT INITIAL.

cv_own_message = abap_true.
MESSAGE <fs_message>-text TYPE 'A' RAISING do_not_save.

ELSE.

*Abort save now (using standard error message).
RAISE do_not_save.

ENDIF.

ENDLOOP.

ENDLOOP.

ENDMETHOD.

Display and Search Business Partner Names in SAP Web UI

Issue
If a business partner is displayed in SAP Web Client UI, you will see „Firstname Lastname“ for natural persons or „Name1“ (address data maintained) or „Name 1 Name2“ (no address data maintained) for organizational units. The search is only working for „Lastname“, „Firstname Lastname“ and „Lastname, Firstname“ resp. „Name1“ „Name2 Name1“ and „Name1, Name2“.

Challenge
If you want to change this logic (especially to resolve the mismatch between display and search), you have to implement BADI BUPA_DESCRIPTION_GET which is used by function module BUPA_DESCRIPTION_GET, BUP_PARTNER_DESCRIPTION_GET and CRM_BUPA_DESCRIPTION_READ.

In SAP CRM standard (and therefore in some cases of SAP Solution Manager as well), the first address line determined by function module ADDRESS_INTO_PRINTFORM is used if the business partner has valid address data (please have a look at method method MOD_ATTR_DATA of class CL_CRM_PARTNER_RUN_BTIL). To change the building logic of the address lines, you have to create and register an own address layout key (900..999) in customizing view V_T005_BAS. You have to implement user exit SZAD0001. BADI BUPA_DESCRIPTION_GET or ADDR_PRINTFORM_SHORT cannot be used here. However in SAP CRM this additional implementation is needed but in SAP Solution Manager you can assume, that mostly BADI BUPA_DESCRIPTION_GET will work, if you have implemented SAP note „2157087 – Partner function „Support team“ only show Name1 in display mode„.

The search logic is located in function module COM_PARTNER_IDENTIFY which is called by method identify_partner of class cl_crm_uiu_bt_partner. (Please search for call of form fill_matchcode_fields). There is no BADI available, therefore you have to use modification or implicit enhancement techniques. Please ensure that SAP note „1713745 – Search of Org. Unit by name is not working“ is implemented, because this note changes the search logic for organizational units.

*"----------------------------------------------------------------------
*"Methoden Signatur:
*"  Importing
*"     VALUE(IS_BUT000) TYPE BUT000
*"     VALUE(IV_ADDRNUMBER) TYPE AD_ADDRNUM
*"     VALUE(IV_VALDT) TYPE BAPIBUS1006_VALIDITY-VALID_DATE
*"     VALUE(IV_BAPI_ENVIROMENT) TYPE FLAG
*"  Changing
*"     VALUE(EV_DESCRIPTION) TYPE BU_DESCRIP
*"     VALUE(EV_DESCRIPTION_NAME) TYPE BU_DESCRIP
*"     VALUE(EV_DESCRIP_NAME_LONG) TYPE BU_DESCRIP_NAME_LONG
*"     VALUE(EV_DESCRIPTION_LONG) TYPE BUS000FLDS-DESCRIP_LONG
*"----------------------------------------------------------------------

METHOD if_ex_bupa_description_get~modify.

  DATA:
    lv_ext_id TYPE string.

  CASE is_but000-type.

*- Person ------------------------------------------------------------------------
    WHEN 1.

*Return Full Name
      ev_description_long = is_but000-name1_text.

*If Full Name is empty, return first and last name.
      IF ev_description_long IS INITIAL.
        ev_description_long = condense( is_but000-name_first && ` ` && is_but000-name_last ).
      ENDIF.

*- Organization ------------------------------------------------------------------------
    WHEN 2.

*Try to get external ID.
      lv_ext_id = /glb/9gt_bp_partner_mapping=>map_partner_int_to_ext(
        iv_third_party_guid = /glb/9gt_bp_partner_mapping=>get_default_third_party_guid( )
        iv_process_type     = /glb/9gt_bp_partner_mapping=>get_default_process_type( )
        iv_partner_no       = is_but000-partner ).

*Return external ID
      IF lv_ext_id IS NOT INITIAL.
        ev_description_long = lv_ext_id.
      ELSE.
*Return Name 2 (Full Organization Name)
        ev_description_long = is_but000-name_org2.

*If Name 2 is empty, return Name 1 only (Short Organization Name)
        IF ev_description_long IS INITIAL.
          ev_description_long = is_but000-name_org1.
        ENDIF.
      ENDIF.

*- Group ------------------------------------------------------------------------
    WHEN 3.

*Return Full Name
      ev_description_long = is_but000-name1_text.

*If Full Name is empty, return Name 1 and Name 2.
      IF ev_description_long IS INITIAL.
        ev_description_long = condense( is_but000-name_grp1 && ` ` && is_but000-name_grp2 ).
      ENDIF.

  ENDCASE.

*Return the same value for all returning parameters.
  ev_description = ev_description_name = ev_descrip_name_long = ev_description_long.

ENDMETHOD.

SAP Solution Manager 7.2 Ramp-Up – Es geht los!!!

Seit Mitte November können sich SAP-Kunden und -Partner für die Teilnahme am Ramp-Up des SAP Solution Manager 7.2 anmelden. Der Ramp-Up selber beginnt Mitte/Ende Dezember 2015 und endet mit der generellen Verfügbarkeit des SAP Solution Manager 7.2 im Juli 2016.

Weitere Informationen finden Sie hier:
https://websmp206.sap-ag.de/~form/handler?_APP=00200682500000002672&_EVENT=DISPLAY&_SCENARIO=01100035870000000122&_HIER_KEY=501100035870000012742&_HIER_KEY=601100035870000129219&_HIER_KEY=601100035870000219234&_HIER_KEY=601200252310000010455&

SAP Solution Manager Workshop

Möglichkeiten und Potentiale des SAP Solution Managers

Dieses Dokument dient als roten Faden für einen zweitägigen Workshop mit folgenden Inhalten bzw. folgender Zielsetzung:

  • Analyse Ihrer bestehenden IT-Prozesse- und -Lösungen und
    Identifizierung genutzter und nicht genutzter Potentiale
  • Interaktives Kennenlernen der Möglichkeiten
    des SAP Solution Managers – als Überblick und im Detail
  • Gemeinsames Diskutieren, Selektieren und Priorisieren
    benötigter und sinnvoller Prozesse, Funktionen und Hilfsmittel
  • Ableiten konkreter Handlungsbedarfe und der nächsten Schritte
    zur Evaluierung, Implementierung oder Optimierung
SAP Solution Manager Workshop.pdf (8.1 MiB)

Custom Code LifeCycle Management

Ganzheitliche Steuerung und Verwaltung kundeneigener Entwicklungen der SAP Business Suite. ITIL in der SAP-Anwendungsentwicklung. Raus aus dem Keller! Rein in die Wertschöpfung!

Ein Blick in Ihre Zukunft: Wir, die unternehmensinterne Anwendungs­entwicklungs­abteilung, sind ein gefragter und begehrter IT-Service-Provider und bieten den Fachabteilungen unseres Unternehmens den IT-Service „Programmierung, Entwicklungsberatung und Kunden­entwicklungs­management“ in Form von konkreten Anwendungs­entwicklungs­leistungen und gut ausgebildeten Anwendungs­entwickler­ressourcen an. Wir betreiben Services (z.B. Programmanalyse, Fehlerbeseitigung, Konzeption, Programmierung, Upgrade und Qualitätssicherung), generieren Services (neue Add-on-Services), unterstützen die Beratung und Betreuung bei ihren Consulting- und Support-Services und leben hierbei ein vollumfängliches ITIL-konformes IT-Service-Management in der praktischen Spezialisierung des Custom-Code-Lifecycle-Managements, das wiederum eine Unterart des Application-Lifecycle-Managements darstellt. Zur aktiven und ganzheitlichen Steuerung und Verwaltung unserer Abteilung und unserer Lösungen setzen wir erfolgreich die Werkzeuge des SAP Solution Managers ein.

Der folgende Leitfaden hilft Ihnen bei der Erreichung Ihrer Vision:

Custom Code Lifecycle Management.pdf (3.4 MiB)

SAP Upgrade Management Guide

Leitfaden für den Upgrade einer SAP-Lösungslandschaft mit speziellem Fokus auf den SAP Solution Manager als essentielles Steuerungs-, Verwaltungs- und Unterstützungswerkzeug für die SAP Business Suite

Der Upgrade einer SAP-Lösungslandschaft zählt zu den wichtigsten und kritischsten Aktivitäten der Anwendungsberatung und -entwicklung. Je mehr kundeneigene Modifikationen, Erweiterungen, Entwicklungen und Konfigurationen in der Vergangenheit getätigt wurden und je schlechter die Qualität dieser Anpassungen mit Blick auf Software­architektur, Releasesicherheit, Dokumentation, Wartbarkeit etc. ist, desto aufwändiger und unberechenbarer wird der Upgrade der SAP-Lösungslandschaft und damit einhergehend der Upgrade der kundeneigenen Anpassungen.

Der Upgrade in Form von Support Package Einspielungen, in Form von Enhancement Package Einspielung mit Aktivierung von Business Functions oder in Form von Releasewechsel ist ein Projekt, das stets nach dem gleichen Schema ablaufen kann und sollte. Dieser Leitfaden beschreibt ein solches generelle Vorgehen für den Upgrade einer SAP-Lösungslandschaft mit besonderer Berücksichtigung der Aktivitäten der Anwendungsentwicklung und mit speziellem Fokus auf den SAP Solution Manager als essentielles Steuerungs-, Verwaltungs- und Unterstützungs­werkzeug für die SAP Business Suite.

SAP Upgrade Management Guide.pdf (632.7 KiB)

Change Request Management RollOut Guide

Leitfaden für das Anbinden, Verändern oder Bauen von ChaRM-Satelliten-Landschaften

Die in diesem Leitfaden beschriebenen Aktivitäten sind zu tun wenn

  • Eine bestehende SAP-Lösungs-Landschaft an das SAP Solution Manager Change Request Management angebunden werden soll.
  • Eine bestehende an das SAP Solution Manager Change Request Management angebundene SAP-Lösungs-Landschaft verändert werden soll (z.B. Aufbau von dauerhaftem Projekt- und Konsolidierungssystem).
  • Eine bestehende an das SAP Solution Manager Change Request Management angebundene SAP-Lösungs-Landschaft verändert werden soll (z.B. Aufbau von temporärem Wartungs- und Qualitätssicherungssystem. Bisherige Wartung wird für Projekt genutzt.).
  • Eine bestehende an das SAP Solution Manager Change Request Management angebundene SAP-Lösungs-Landschaft verändert werden soll (z.B. Verlängerung des Wartungsstrangen um ein zusätzliches Qualitätssicherungs- oder Vorproduktionssystem).
  • Eine Demolandschaft im SAP Solution Manager Entwicklungssystem angelegt werden soll.
  • Ein Releasezyklus abgeschlossen und ein neuer Releasezyklus angelegt werden soll.
Change Request Management RollOut Guide.pdf (571.8 KiB)

Change Request Management Downgrade Protection Handbuch

Handbuch zur Steuerung, Überwachung und Vermeidung von Parallelentwicklungen

Systemübergreifende Objektsperre / Cross System Object Lock / CSOL

Die „Systemübergreifende Objektsperre / Cross System Object Lock / CSOL“ ist eine Funktion des SAP Solution Manager Change Request Management. Sie gewährleistet, dass ein Objekt bei Änderung in einem verwalteten System im zentralen SAP-Solution-Manager-System gesperrt wird. Spätestens beim Speichern dieser Änderung wird der Entwickler/Customizer über aktuell laufende parallele Anpassungen am selben Objekt informiert und kann seine Änderung ggf. gar nicht oder nur im fremden Änderungsvorgang speichern. Hierdurch werden Importprobleme von vornherein ausgeschlossen bzw. der Implementierer wird im Vorfeld über die Gefahr informiert.

Downgrade-Schutz / Downgrade Protection / DGP

Der „Downgrade-Schutz / Downgrade Protection / DGP“ ist eine Funktion des SAP Solution Manager Change Request Management. Die Funktion dient der Nachverfolgung von Objektänderungen und deren Transport durch die gesamte Lösungslandschaft. Konflikte und daraus resultierende potentielle und tatsächliche Downgrade-Risiken (z.B. Überholen eines Vorgängers oder Überschreiben eines Nachfolgers) werden identifiziert, bewertet, gemeldet und müssen explizit vom Change- / Release-Manager genehmigt werden. Hierdurch werden Importprobleme proaktiv verhindert bzw. der Change- / Release-Manager wird im Vorfeld über die Gefahr informiert.

Projektschnittmengenprüfung / Project Intersection Check / PIC

Wenn Sie in einer Systemlandschaft mit mehreren parallelen Projekten arbeiten, die Projekte aber nicht vollständig disjunkt halten können, dann müssen Sie Abhängigkeitsbeziehungen zwischen den Transportaufträgen definieren. Beim Import von Transportaufträgen werden die Abhängigkeitsbeziehungen ausgewertet und das System weist die Transport­administration automatisch darauf hin, dass sie die Menge der zu importierenden Aufträge vergrößern muss, um die korrekte Importreihenfolge zu erhalten. Die Funktion „Projekt­schnitt­mengenprüfung / Project Intersection Check / PIC“ dient der automatischen Identifikation technisch bedingten Transportabhängigkeiten, der manuellen Vormerkung von logischen Transportabhängigkeiten und der Überwachung der Abhängigkeiten beim Import.

Änderungs-und-Transport-System-Analyse / Change- and Transport System Analysis / CTSA

Die „Änderungs-und-Transport-System-Analyse / Change- and Transport System Analysis / CTSA“ dient der Ad-Hoc-Analyse einer Menge von Transportaufträgen, der darin enthaltenen Objekte und deren Umfeld. Mit Hilfe dieser Analyse können vor dem Projektimport Abhängigkeiten zu anderen Änderungen / Transportaufträge, deren Produktivsetzungen aktuell noch nicht anstehen, identifiziert werden. Der Umfang der zu importierenden Transportaufträge ist anschließend um diese Transportaufträge zu erweitern, da es ansonsten zu kritischen Objektversionsunterschieden zwischen Quell- und Zielsystem und damit einhergehend zu abweichendem Funktionsverhalten, Inkonsistenzen oder Systemabbrüchen kommen kann.

Transportnachverfolgungsmonitor / Transport Tracking Monitor / TRMO

Nach einem GoLive eines größeren Releases bzw. Projektes besteht häufig der Wunsch eines Nachweises der Transport- und Objektkonsistenz. Für eine Schnellanalyse kann die Funktion „Transportnachverfolgungsmonitor / Transport Tracking Monitor / TRMO“ genutzt werden. Sie können hiermit Transportaufträge von dem System, in dem sie angelegt und freigegeben wurden, bis zu dem System, in das sie importiert wurden, nachverfolgen. Dabei lassen sich sowohl Transportdeltas als auch Reihenfolgeverletzungen identifizieren.

Transportausführungsanalyse / Transport Execution Analysis / TEA

Eine ausführliche Analyse der Lösungslandschaft oder des Releases / Projektes ist mit dem Self-Service „Transportausführungsanalyse (für Projekte) / Transport Execution Analysis (for Project) / TEA(P)“ möglich. Diese Analyse kann vor und/oder nach einem GoLive ausgeführt werden. Sie kann auch unabhängig von einem GoLive ausgeführt werden. In jedem Fall erhalten Sie als Ergebnis einen ausführlichen Analysebericht (Word / HTML / PDF) mit konkreten Handlungsanweisungen zur nachhaltigen Sicherung bzw. Verbesserung der Transport- und Objektkonsistenz.

Importqueue-Web-UI – Importprüfungen / Import Queue Web UI – Import Checks / IQIC

Sämtliche zuvor beschriebenen Funktionalitäten sind ausschließlich für ABAP-Änderungen nutzbar. Für Non-ABAP-Änderungen sind sie nicht anwendbar. Ergänzend zur Funktion „Downgrade-Schutz“ und „Projektschnittmengenprüfung“ ist die Funktion „Importqueue-Web-UI – Importprüfungen / Import Queue Web UI – Import Checks / IQIC“ anzuwenden. Diese Funktion unterstützt die Prüfarten „Prüfung auf Vorgänger“ und „Prüfung auf Downgrades“ für alle ABAP- und fast alle Non-ABAP-Transporte. Es erfolgt ausschließlich eine Analyse der aktuell in der Importqueue zum Import anstehenden oder bereits importierten Transportaufträge, weshalb Überholer nur ein einziges Mal erkannt werden – z.B. nur beim Import in das Qualitätssicherungssystem aber nicht beim Import in das Produktionssystem.

Importhistorie-Web-UI – Analysemodus / Import History Web UI – Analysis Mode / IHAM

Ergänzend zur Funktion „Transportnachverfolgungsmonitor“ ist die Funktion „Importhistorie-Web-UI – Analysemodus / Import History Web UI – Analysis Mode / IHAM“ anzuwenden. Diese Funktion identifiziert Reihenfolgeverletzungen, Downgrades und reparierte Downgrades für alle ABAP- und fast alle NonABAP-Transporte. Es erfolgt ausschließlich eine Analyse der Importhistorie, weshalb unter anderem Transportdeltas nicht erkannt werden können.

Download

Change Request Management Downgrade Protection Handbuch.pdf (2.0 MiB)

Änderung des Internetbrowsers für SAP CRM Web UI funktioniert nicht mit Single Sign On

  1. Bitte stelle sicher, dass Firefox, Google Chrome, Opera etc. dein Standardbrowser ist. Wie das geht ist hier erklärt: https://support.google.com/chrome/answer/95417?hl=en
  2. Ab jetzt sollten die Transaktionen WUI, CRM_UI und SM_CRM diesen Internet Browser und nicht mehr den Microsoft Internet Explorer (IE) nutzen.
  3. Falls die Transaktionen WUI und CRM_UI funktionieren, SM_CRM aber nicht, dann liegt das am Single Sign On (SSO). Es sieht so aus, also ob bei aktivem Single Sign On automatisch der IE genutzt wird. Konkret verifizieren kannst du das mit der Transaktion START_BSP und der BSP-Anwendung „CRM_UI_START“. Der Folgende Artikel bestätigt, dass bei SSO ein IE-ActiveX-Control verwendet wird, um den Aufruf zu realisieren: https://scn.sap.com/thread/1406302

Lösung:

  1. Bitte erstelle einen SAP Incident. Die Erfolgswahrscheinlichkeit ist allerdings sehr gering, da es sich streng genommen um keinen Bug sondern eine Funktionsverbesserung handelt.
  2. Verwende nicht den SAP GUI. Hinterlege und nutze stattdessen den SAP CRM Web UI Link als Windows-Verknüpfung, Browser-Favorit oder Portallink. Teilweise kannst du Username und Passwort als Klartextparameter der URL mitgeben (Verknüpfung, Favorit). Teilweise wird SSO unterstützt (Portallink).

Creating, changing and reading business transaction data using class cl_ags_crm_1o_api

To create, change or read business transaction data in SAP CRM or SAP Solution Manager, you can use low level API function modules CRM_ORDER_READ, CRM_ORDER_MAINTAIN, CRM_*_OW or high level layer BOL/GenIL.

However, sometimes you want to use a simple API which is optimized for single transaction processing. In that case, you should use classes cl_ags_crm_1o_api (and cl_crm_bsp_maintain_1o).

*"----------------------------------------------------------------------
*"Methoden Signatur:
*"  Importing
*"    IV_HEADER_GUID TYPE CRMT_OBJECT_GUID
*"    IV_PROCESS_TYPE TYPE CRMT_PROCESS_TYPE
*"  Exporting
*"    EV_HEADER_GUID TYPE CRMT_OBJECT_GUID
*"----------------------------------------------------------------------
METHOD create_transaction.

*We have to use class cl_crm_bsp_maintain_1o instead of cl_ags_crm_1o_api
*because class cl_ags_crm_1o_api don't support creation of follow-ups yet.
*After creation we need to save or we need to handover buffer from cl_crm_bsp_maintain_1o to cl_ags_crm_1o_api.
*Both ways are not possible. Therefore we free our instance of cl_crm_bsp_maintain_1o and hope the best.
"However this a dirty solution because the instance is still in buffer and marked as "to be saved".
*Therefore we might have side effects when someone uses class cl_crm_bsp_maintain_1o afterwards in same session.
*At the moment that isn't the fact.

  DATA:
    lr_maintain_1o TYPE REF TO cl_crm_bsp_maintain_1o.

  CLEAR ev_header_guid.


*Get Instance of 1O Manager
  CALL METHOD cl_crm_bsp_maintain_1o=>get_instance
    RECEIVING
      rr_maintain_1o = lr_maintain_1o.

*Create Follow Up.
  CALL METHOD lr_maintain_1o->copy_order
    EXPORTING
      iv_process_type    = iv_process_type
      iv_old_header_guid = iv_header_guid
      iv_vona_kind       = 'A' "Use Copy Control
*     iv_template_type   =
    IMPORTING
      ev_new_header_guid = ev_header_guid
    EXCEPTIONS
      error_occurred     = 1
      OTHERS             = 2.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  FREE lr_maintain_1o.

ENDMETHOD.

*"----------------------------------------------------------------------
*"Methoden Signatur:
*"  Importing
*"    IV_HEADER_GUID TYPE CRMT_OBJECT_GUID
*"    IV_DESCRIPTION TYPE CRMT_PROCESS_DESCRIPTION
*"    IV_TEXTTYPE TYPE TDID
*"    IV_TEXTID TYPE DOK_ID
*"    IV_TEXTOBJ TYPE DOKU_OBJ
*"    IS_TRACK TYPE /TMWFLOW/TRACK
*"    IS_CONTEXT TYPE ZCIEH_CONTEXT_S
*"----------------------------------------------------------------------
METHOD adjust_short_text.

  DATA:
    lr_instance   TYPE REF TO cl_ags_crm_1o_api,
*   ls_orderadm_h TYPE crmt_orderadm_h_wrk,
    lv_on_database_flag TYPE abap_bool,
    lv_short_text LIKE iv_description.

*Get Instance of Change Transaction
  CALL METHOD cl_ags_crm_1o_api=>get_instance
    EXPORTING
*     iv_language                   = SY-LANGU
      iv_header_guid                = iv_header_guid
*     iv_process_type               =
      iv_process_mode               = 'C' "We want to Change the Change Transaction. But Exception can not tell that document is just locked.
    IMPORTING
*     et_msg                        =
      eo_instance                   = lr_instance
    EXCEPTIONS
      invalid_parameter_combination = 1
      error_occurred                = 2
      OTHERS                        = 3.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

*Check if Transaction already exists on Database.
*Getting MODE of ORDERADM_H don't work correct.
  CALL FUNCTION 'CRM_ORDERADM_H_ON_DATABASE_OW'
    EXPORTING
      iv_orderadm_h_guid  = iv_header_guid
    IMPORTING
      ev_on_database_flag = lv_on_database_flag.

*We want to change the description.
  IF iv_description IS NOT INITIAL.

*Get Short Text
    CALL METHOD lr_instance->get_short_text
      IMPORTING
        ev_short_text        = lv_short_text
      EXCEPTIONS
        document_not_found   = 1
        error_occurred       = 2
        document_locked      = 3
        no_change_authority  = 4
        no_display_authority = 5
        no_change_allowed    = 6
        OTHERS               = 7.

*Expected & unexpected error...
    CASE sy-subrc.
      WHEN 0.
      WHEN 3. RAISE document_locked.
      WHEN 4. RAISE no_authority.
      WHEN 5. RAISE no_authority.
      WHEN 6. RAISE no_change_allowed.
      WHEN OTHERS. MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDCASE.

*Set Short Text if it is empty yet or if Transaction will be created.
    IF lv_short_text IS INITIAL OR lv_on_database_flag = abap_false. "ls_orderadm_h-mode = 'A'.

      CALL METHOD lr_instance->set_short_text
        EXPORTING
          iv_short_text     = iv_description
        EXCEPTIONS
          error_occurred    = 1
          document_locked   = 2
          no_change_allowed = 3
          no_authority      = 4
          OTHERS            = 5.

*Expected & unexpected error...
      CASE sy-subrc.
        WHEN 0.
        WHEN 2. RAISE document_locked.
        WHEN 3. RAISE no_change_allowed.
        WHEN 4. RAISE no_authority.
        WHEN OTHERS. MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDCASE.

    ENDIF.

  ENDIF.

*This is a little bit strange but necessary.
*Status changes and long text changes bypass the One Order Framework.
*Therefore when we save the Change Transaction via CRM_ORDER_SAVE it might detect nothing to do.
*But this is wrong, we still want a commit work.

*Therefore we simulate a change on ORDERADM_H.
  CALL FUNCTION 'CRM_EVENT_PUBLISH_OW'
    EXPORTING
      iv_obj_name = 'ORDERADM_H'
      iv_guid_hi  = iv_header_guid
      iv_kind_hi  = 'A'
      iv_event    = 'SAVE'.

*Free Instance.
  FREE: lr_instance.

ENDMETHOD.

*"----------------------------------------------------------------------
*"Methoden Signatur:
*"  Importing
*"    IV_HEADER_GUID TYPE CRMT_OBJECT_GUID
*"----------------------------------------------------------------------
METHOD save_transaction.

  DATA:
    lr_instance      TYPE REF TO cl_ags_crm_1o_api,
    lt_exception     TYPE crmt_exception_t,
    lt_msg           TYPE /tmwflow/mo_tt_msg,
    lt_saved_objects TYPE crmt_return_objects,
    lv_log_handle TYPE balloghndl.

*Get Instance of Change Transaction
  CALL METHOD cl_ags_crm_1o_api=>get_instance
    EXPORTING
*     iv_language                   = SY-LANGU
      iv_header_guid                = iv_header_guid
*     iv_process_type               =
      iv_process_mode               = 'B'
    IMPORTING
*     et_msg                        =
      eo_instance                   = lr_instance
    EXCEPTIONS
      invalid_parameter_combination = 1
      error_occurred                = 2
      OTHERS                        = 3.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

*Save Transaction changes to database.
  CALL METHOD lr_instance->save
    EXPORTING
      iv_unlock                  = abap_true
*     iv_save_only_external_data = SPACE
      iv_init                    = abap_true
    IMPORTING
      et_exception               = lt_exception[]
      et_msg                     = lt_msg[]
      et_saved_objects           = lt_saved_objects[]
    CHANGING
      cv_log_handle              = lv_log_handle
    EXCEPTIONS
      error_occurred             = 1
      OTHERS                     = 2.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ELSEIF lt_saved_objects[] IS INITIAL.
    MESSAGE x151(00).
  ENDIF.

  FREE: lr_instance.

ENDMETHOD.

Change user status using method HF_SET_STATUS

*"----------------------------------------------------------------------
*"Methoden Signatur:
*"  Importing
*"    IV_HEADER_GUID TYPE CRMT_OBJECT_GUID
*"    IV_STATUS TYPE J_ESTAT
*"    IV_RESET TYPE OAX
*"----------------------------------------------------------------------
METHOD change_transaction_status.

*Simulate execution of PPF action method HF_SET_STATUS.
*This solution was inspired by report CRM_SOCM_SERVICE_REPORT and action method HF_SET_STATUS.

  DATA:
    lr_methodcall  TYPE REF TO if_ex_exec_methodcall_ppf,
    lr_object      TYPE REF TO object,
    lr_appl_object TYPE REF TO cl_doc_crm_order,
    lr_partner     TYPE REF TO cl_partner_ppf,
    lv_log_handle  TYPE balloghndl,
    lr_container   TYPE REF TO if_swj_ppf_container,
    lv_status      TYPE ppfdtstat.

*Create PPF instance
  CALL METHOD cl_exithandler=>get_instance
    EXPORTING
      exit_name                     = 'EXEC_METHODCALL_PPF'
      null_instance_accepted        = cl_socm_integration=>true
    CHANGING
      instance                      = lr_methodcall
    EXCEPTIONS
      no_reference                  = 1
      no_interface_reference        = 2
      no_exit_interface             = 3
      class_not_implement_interface = 4
      single_exit_multiply_active   = 5
      cast_error                    = 6
      exit_not_existing             = 7
      data_incons_in_exit_managem   = 8
      OTHERS                        = 9.

*Unexpected error...
  IF sy-subrc <> 0 OR lr_methodcall IS NOT BOUND.
    MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

*Get application object.
  CALL FUNCTION 'CRM_ACTION_GET_APPL_OBJECT'
    EXPORTING
      iv_ref_guid    = iv_header_guid
      iv_ref_kind    = 'A'
    IMPORTING
      ev_appl_object = lr_object.

*Unexpected error...
  IF lr_object IS NOT BOUND.
    MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  lr_appl_object ?= lr_object.

*We have and need no partner.
  CLEAR:
    lr_partner.

*Create log handle.
  CALL METHOD cl_log_ppf=>create_log
*  EXPORTING
*    ip_object    = 'PPF'
*    ip_subobject = 'PROCESSING'
*    ip_ext_no    =
    RECEIVING
      ep_handle    = lv_log_handle.

*Create and build up PPF Container
  CREATE OBJECT lr_container TYPE cl_swj_ppf_container.

*Unexpected error...
  IF lr_container IS NOT BOUND.
    MESSAGE x151(00).
  ENDIF.

  CALL METHOD lr_container->set_value
    EXPORTING
      element_name = 'USER_STATUS'
      data         = iv_status.

  CALL METHOD lr_container->set_value
    EXPORTING
      element_name = 'RESET_STATUS'
      data         = iv_reset.

*Lock Change Transaction if not already done.
  CALL FUNCTION 'CRM_ORDER_ENQUEUE'
    EXPORTING
      iv_guid           = iv_header_guid
    EXCEPTIONS
      foreign_lock      = 1
      system_failure    = 2
      distributed_lock  = 3
      no_change_allowed = 4
      transferring      = 5
      OTHERS            = 6.

*Expected & unexpected error...
  CASE sy-subrc.
    WHEN 0.
    WHEN 1. RAISE document_locked.
    WHEN 4. RAISE no_change_allowed.
    WHEN OTHERS. MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDCASE.

*Change Status...
  TRY.
      CALL METHOD lr_methodcall->execute
        EXPORTING
          flt_val            = 'HF_SET_STATUS'
          io_appl_object     = lr_appl_object
          io_partner         = lr_partner
          ip_application_log = lv_log_handle
          ip_preview         = space
          ii_container       = lr_container
          ip_action          = '' "'RESET_BY_CHECK' "'SET_STATUS_BY_PROGRAM'
        RECEIVING
          rp_status          = lv_status.
    CATCH cx_socm_condition_violated.
      MESSAGE x151(00).
  ENDTRY.

*Free objects.
  CALL METHOD cl_log_ppf=>refresh_log
    EXPORTING
      ip_handle = lv_log_handle.

  FREE:
    lr_container,
    lr_partner,
    lr_appl_object,
    lr_methodcall.

*Status was not changed.
*We don't know why. Maybe authority maybe check condition. Maybe bigfoot. ...
  IF lv_status <> 1.
    RAISE no_change_allowed.
  ENDIF.

ENDMETHOD.

Read text template, resolve placeholders and maintain text

*"----------------------------------------------------------------------
*"Methoden Signatur:
*"  Importing
*"    IV_HEADER_GUID TYPE CRMT_OBJECT_GUID
*"    IV_TEXTTYPE TYPE TDID
*"    IV_TEXTID TYPE DOK_ID
*"    IV_TEXTOBJ TYPE DOKU_OBJ
*"----------------------------------------------------------------------
METHOD maintain_transaction_text.

  DATA:
    lr_instance   TYPE REF TO cl_ags_crm_1o_api,
    ls_head       TYPE thead,
    lt_line       TYPE TABLE OF tline,
    lt_symbol     TYPE TABLE OF itcst,
    lt_text       TYPE crmt_text_comt,
    ls_text       LIKE LINE OF lt_text[].

  FIELD-SYMBOLS:
    <fs_symbol> LIKE LINE OF lt_symbol[],
    <fv_value>  TYPE any.

*Get Instance of Change Transaction
  CALL METHOD cl_ags_crm_1o_api=>get_instance
    EXPORTING
*     iv_language                   = SY-LANGU
      iv_header_guid                = iv_header_guid
*     iv_process_type               =
      iv_process_mode               = 'C' "We want to Change the Change Transaction. But Exception can not tell that document is just locked.
    IMPORTING
*     et_msg                        =
      eo_instance                   = lr_instance
    EXCEPTIONS
      invalid_parameter_combination = 1
      error_occurred                = 2
      OTHERS                        = 3.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

*We want add a text block...
*The following code was inspired by
*  CL_WD_FORMATTED_TEXT->CREATE_FROM_SAPSCRIPT
*  CL_SSF_XSF_UTILITIES
  IF iv_texttype IS NOT INITIAL AND iv_textid IS NOT INITIAL AND iv_textobj IS NOT INITIAL.

*Read text block previously created using transaction SE61.
    CALL FUNCTION 'DOCU_GET'
      EXPORTING
*       EXTEND_EXCEPT          = ' '
        id                     = iv_textid
        langu                  = sy-langu
        object                 = iv_textobj
*       TYP                    = 'E'
*       VERSION                = 0
*       VERSION_ACTIVE_OR_LAST = 'L'
*       PRINT_PARAM_GET        = 'X'
      IMPORTING
*       DOKSTATE               =
*       DOKTITLE               =
        head                   = ls_head
*       DOKTYP                 =
      TABLES
        line                   = lt_line[]
      EXCEPTIONS
        no_docu_on_screen      = 1
        no_docu_self_def       = 2
        no_docu_temp           = 3
        ret_code               = 4
        OTHERS                 = 5.

*Expected & unexpected error...
    CASE sy-subrc.
      WHEN 0.
      WHEN OTHERS. MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDCASE.

*Resolve Text block includes.
    CALL FUNCTION 'TEXT_INCLUDE_REPLACE'
      EXPORTING
*   ALL_LEVEL        = 'X'
*   ENDLINE          = 99999
        header           = ls_head
*   STARTLINE        = 1
*   PROGRAM          = ' '
* IMPORTING
*   CHANGED          =
*   ERROR_TYPE       =
*   NEWHEADER        =
      TABLES
        lines            = lt_line[].

*Resolve text block control statements.
    CALL FUNCTION 'TEXT_CONTROL_REPLACE'
      EXPORTING
        header                = ls_head
*   PROGRAM               = ' '
*   REPLACE_COMMENT       = 'X'
* IMPORTING
*   CHANGED               =
*   NEWHEADER             =
      TABLES
        lines                 = lt_line[].

*Clear buffer for text symbols.
    CALL FUNCTION 'INIT_TEXTSYMBOL'
      EXPORTING
*       PROGRAM = ' '
*       TEST    = ' '
        type    = 'TEXT'.

*Get all used symbols.
    CALL FUNCTION 'TEXT_SYMBOL_COLLECT'
      TABLES
        lines   = lt_line[]
        symbols = lt_symbol[].

*Set values for used symbols.
    LOOP AT lt_symbol[] ASSIGNING <fs_symbol>.

      ASSIGN (<fs_symbol>-name) TO <fv_value>.

      IF sy-subrc = 0.

*An alternative solution would be the use of global variables in a program or function group.
        CALL FUNCTION 'TEXT_SYMBOL_SETVALUE'
          EXPORTING
            name            = <fs_symbol>-name
            value           = <fv_value>
*           VALUE_LENGTH    = 0
*           REPLACE_SYMBOLS = ' '
          .

      ELSE.

*There is a wrong symbol in text block.
        MESSAGE x151(00).

      ENDIF.

    ENDLOOP.

*Replace symbols by value.
    CALL FUNCTION 'TEXT_SYMBOL_REPLACE'
      EXPORTING
*   ENDLINE                = 99999
        header                 = ls_head
*   INIT                   = ' '
*   OPTION_DIALOG          = ' '
*   PROGRAM                = ' '
        replace_program        = ' ' "We don^t use global variables of a program or function group
*       REPLACE_STANDARD       = 'X' "What's that???
        replace_system         = 'X' "Replace system variables (date, time, username, ...)
        replace_text           = 'X' "Replace all variables pubslished by TEXT_SYMBOL_SETVALUE
*   STARTLINE              = 1
* IMPORTING
*   CHANGED                =
*   NEWHEADER              =
      TABLES
        lines                  = lt_line[].

*Add Text block.
    CLEAR:
      ls_text,
      lt_text[].

    MOVE:
      iv_texttype TO ls_text-tdid,
      'I'         TO ls_text-mode,
      lt_line[]   TO ls_text-lines[].

    APPEND ls_text TO lt_text[].

    CALL METHOD lr_instance->set_texts
      EXPORTING
        it_text           = lt_text[]
*  CHANGING
*    cv_log_handle     =
      EXCEPTIONS
        error_occurred    = 1
        document_locked   = 2
        no_change_allowed = 3
        no_authority      = 4
        OTHERS            = 5.

*Expected & unexpected error...
    CASE sy-subrc.
      WHEN 0.
      WHEN 2. RAISE document_locked.
      WHEN 3. RAISE no_change_allowed.
      WHEN 4. RAISE no_authority.
      WHEN OTHERS. MESSAGE ID sy-msgid TYPE 'X' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDCASE.

**I dont really understand it.
**The Standard did not post this event on create/change.
**But on save he detects it.
**We need to post it manually to save the text changes.
**I think this is a bug and should be resolved by SAP.
**Maybe it only occurs when we only change texts.
*    IF sy-subrc = 0.
*      CALL FUNCTION 'CRM_EVENT_PUBLISH_OW'
*        EXPORTING
*          iv_obj_name = 'TEXTS'
*          iv_guid_hi  = iv_header_guid
*          iv_kind_hi  = 'A'
*          iv_event    = 'SAVE'
*        EXCEPTIONS
*          OTHERS      = 2.
*    ENDIF.

  ENDIF.

*This is a little bit strange but necessary.
*Status changes and long text changes bypass the One Order Framework.
*Therefore when we save the Change Transaction via CRM_ORDER_SAVE it might detect nothing to do.
*But this is wrong, we still want a commit work.

*Therefore we simulate a change on ORDERADM_H.
  CALL FUNCTION 'CRM_EVENT_PUBLISH_OW'
    EXPORTING
      iv_obj_name = 'ORDERADM_H'
      iv_guid_hi  = iv_header_guid
      iv_kind_hi  = 'A'
      iv_event    = 'SAVE'.

*Free Instance.
  FREE: lr_instance.

ENDMETHOD.

Checking landscape information in SAP CRM PPF action conditions using BADI CONTAINER_PPF

In SAP Solution Manager Change Request Management we want to work with different status flows dependent on the landscape (in one process type). Therefore we need to use landscape information in Action schedule (and start) conditions.

With BADI implementation ZLIAC_SYSTROLE_EXIST (BADI Definition CONTAINER_PPF) we have the possibility to check the use of specific system roles. To do this, we simply have to define a condition parameter “ZLIAC_SYSTEM_ROLE_EXISTS_<SYSTEM_ROLE>“. Please have a look at transaction MAINT_ROLES for valid system roles.

In our first use case, we want do differentiate between 3-trier and 5-trier landscapes. To do that, we check for existence of system role “3”. This role will only be used in 5-trier landscapes like “D -> T -> 2 -> 3 -> P”. In 3-trier landscapes like “D -> T -> P”, this role will never be used.


*"----------------------------------------------------------------------
*"Methoden Signatur:
*"  Importing
*"    FLT_VAL TYPE OJ_NAME
*"  Changing
*"    CI_CONTAINER TYPE REF IF_SWJ_PPF_CONTAINER
*"    CI_PARAMETER TYPE REF IF_SWJ_PPF_CONTAINER
*"----------------------------------------------------------------------
method IF_EX_CONTAINER_PPF~MODIFY_CONTAINER.

  TYPE-POOLS: socmt.

  data:
    lv_result          type abap_bool,
    lt_parameter       TYPE SWCONTTAB,
    lv_system_role     type /TMWFLOW/PROJECT_SYSTEM_S-SYSTEM_ROLE,
    ls_object          TYPE sibflporb,
    lv_guid            TYPE crmt_object_guid,
    lv_doc_flow_id     TYPE crmt_doc_flow_id_wrk,
    lv_tasklist        TYPE /tmwflow/tasklist,
    lt_system          TYPE TABLE OF /tmwflow/project_system_s,
    lt_transport       TYPE SOCMT_TRORDHC_TYPE.

  field-symbols:
    <fs_parameter> like line of lt_parameter,
    <fs_transport> like line of lt_transport.

*-------------------------------------------------------------------------

*check if classes are bound
  CHECK: ci_container IS BOUND,
         ci_parameter IS BOUND.

*get all parameters
  CALL METHOD ci_parameter->get_values
    RECEIVING
      values = lt_parameter.

*process every matching parameter "ZLIAC_SYSTEM_ROLE_EXISTS_<SYSTEM_ROLE>". Please have a look at transaction MAINT_ROLES for valid system roles.
  loop at lt_parameter[] assigning <fs_parameter> where element(25) = 'ZLIAC_SYSTEM_ROLE_EXISTS_'.

*Crear result because this is a new run.
    clear lv_result.

*This is the first run. Therefore we have to get some information once.
    if lv_system_role is initial.

*Get Change Document
      CALL METHOD ci_container->get_value
        EXPORTING
          element_name = 'BUSINESSOBJECT'
        IMPORTING
          data         = ls_object.

* Extract GUID
      lv_guid = ls_object-instid.

*Exit if it is no valid context.
      if lv_guid is initial.
        return.
      endif.

*Get assigned tasklist
      CALL METHOD cl_hf_helper=>get_bo_tasklist_of_chng_doc
        EXPORTING
          im_change_document_id = lv_guid
        RECEIVING
          return                = lv_doc_flow_id.

      lv_tasklist = lv_doc_flow_id.

*Exit if it is no valid context.
      if lv_tasklist is initial.
        return.
      endif.

*get systems from tasklist
*If we need more information, we have to use /TMWFLOW/PROJECT_GET or /TMWFLOW/PROJECT_READ to get project id and /TMWFLOW/TRANSPORT_TRACK_GET to get extended system information.
      CALL FUNCTION '/TMWFLOW/TASKLIST_SYSTEMS_GET'
        EXPORTING
          id_tasklist       = lv_tasklist
          id_current_track  = 'X'
        TABLES
          et_project_system = lt_system[]
        EXCEPTIONS
          project_not_found = 1
          OTHERS            = 2.

*Exit if it is no valid context.
      if sy-subrc <> 0.
        return.
      endif.

*get transport requests of change document
      CALL METHOD /tmwflow/cl_transport=>get_chng_doc_transp_req
        EXPORTING
          iv_header_guid = lv_guid
        IMPORTING
          et_transp_req  = lt_transport[].

*We are only interested in transport tracks.
*It is OK if we have no transports yet.
      SORT lt_transport[] by transport_track.
      DELETE ADJACENT DUPLICATES FROM lt_transport[] COMPARING transport_track.

    endif.

*Extract system role to be checked now.
    lv_system_role = <fs_parameter>-element+25(1).

*Check every used transport track.
    LOOP AT lt_transport[] assigning <fs_transport>.

*Is system role used?
      READ TABLE lt_system[]
           WITH KEY transport_track = <fs_transport>-transport_track
                    system_role     = lv_system_role
           TRANSPORTING NO FIELDS.

      check sy-subrc = 0.

*Yes system role is in use!!!
      lv_result = abap_true.
      exit.

    ENDLOOP.

*if there are no transport requests, check all project tracks.
    IF sy-subrc NE 0.

      do 1 times.

*Is system role used?
        READ TABLE lt_system[]
             WITH KEY "transport_track = <fs_transport>-transport_track
                      system_role     = lv_system_role
             TRANSPORTING NO FIELDS.

        check sy-subrc = 0.

*Yes system role could be used!!!
        lv_result = abap_true.
        exit.

      enddo.

    endif.

*set output parameter
    CALL METHOD ci_parameter->set_value
      EXPORTING
        element_name = <fs_parameter>-element
        data         = lv_result.
*            RECEIVING
*              retcode      = lv_subrc.

  endloop.

endmethod.

Get Multi Level Category

*"----------------------------------------------------------------------
*"Methoden Signatur:
*"  Importing
*"    IV_GUID TYPE CRMT_OBJECT_GUID
*"    IV_CATALOG_TYPE TYPE CRMT_CATALOGTYPE
*"  Returning
*"     VALUE(RT_RESULT) TYPE CRMT_ERMS_CAT_CA_LANG_TAB
*"----------------------------------------------------------------------
************************************************************************
* Method GET_CATEGORY                                                  *
* Date   26.01.2015                                                    *
*                                                                      *
*----------------------------------------------------------------------*
* Get Multi Level Category.                                            *
************************************************************************
METHOD get_category.

*Low Level Function for Debugging: CRM_ERMS_CAT_CA_READ + CRM_ERMS_CAT_AS_READ.

  TYPES:
    tt_category TYPE TABLE OF REF TO if_crm_erms_catego_category.

  DATA:
    li_aspect	    TYPE REF TO if_crm_erms_catego_aspect,
    li_category   TYPE REF TO if_crm_erms_catego_category,
    lr_categories TYPE REF TO data,
    ls_cat_lang   TYPE crmt_erms_cat_ca_lang.

  FIELD-SYMBOLS:
    <ft_category> TYPE tt_category,
    <fi_category> LIKE li_category.

*Ensure valid result.
  REFRESH rt_result[].

*Get Assigned Category.
  CALL METHOD cl_crm_ml_category_util=>get_categoryfirst
    EXPORTING
      iv_ref_guid     = iv_guid
      iv_ref_kind     = 'A'
      iv_catalog_type = iv_catalog_type
    IMPORTING
      er_aspect       = li_aspect
      er_category     = li_category.

  CHECK li_aspect IS BOUND AND li_category IS BOUND.

*Get All Parent Nodes.
  CALL METHOD cl_crm_ml_category_util=>get_cat_pars_all
    EXPORTING
      ir_aspect     = li_aspect
      ir_category   = li_category
    IMPORTING
      er_categories = lr_categories.

  CHECK lr_categories IS BOUND.

  ASSIGN lr_categories->* TO <ft_category>.

*Don't forget our assigned Category.
  INSERT li_category INTO <ft_category> INDEX 1.

  LOOP AT <ft_category> ASSIGNING <fi_category>.

*Get Category Details.
    CALL METHOD <fi_category>->get_details
*  EXPORTING
*    iv_auth_check = ' '
       IMPORTING
*        ev_cat        = ls_cat
         ev_cat_lang   = ls_cat_lang.

*Ensure that description is filled.
    IF ls_cat_lang-cat_desc IS INITIAL.
      ls_cat_lang-cat_desc = ls_cat_lang-cat_labl.
    ENDIF.

    IF ls_cat_lang-cat_desc IS INITIAL.
      ls_cat_lang-cat_desc = ls_cat_lang-cat-cat_id.
    ENDIF.

*Transfer Result
    INSERT ls_cat_lang INTO rt_result[] INDEX 1.

  ENDLOOP.

ENDMETHOD.

Calculate Service Duration using Service Level Agreement Management (SLAM)

*"----------------------------------------------------------------------
*"Methoden Signatur:
*"  Importing
*"    IV_GUID TYPE CRMT_OBJECT_GUID
*"    IV_START TYPE TIMESTAMP
*"    IV_END TYPE TIMESTAMP
*"    IV_UNIT TYPE TIMEUNITDU
*"  Returning
*"     VALUE(RV_DURATION) TYPE TIMEDURA
*"----------------------------------------------------------------------
************************************************************************
* Method CALCULATE_SERVICE_DURATION                                    *
* Date   05.02.2015                                                    *
*                                                                      *
*----------------------------------------------------------------------*
* Calculate Service Duration.                                          *
* Please ensure, that a Service Profile is maintained.                 *
* Please ensure, that this Service Profile could be determined by SLAM.*
* If SLAM is not used, please hack method GET_SERVICE_WINDOW           *
* of class CL_AI_CRM_SERVICE to set a default service profile.         *
************************************************************************
METHOD calculate_service_duration.

*This solution was found during a little research analysis of report AI_CRM_PROCESS_SLA and class CL_AI_CRM_SLA_UTIL.
*Here I found class cl_ai_crm_service. This class is used at multiple places which was found using where used analyis.

  DATA:
    lo_service      TYPE REF TO cl_ai_crm_service,
    lv_start_date   TYPE dats,
    lv_start_time   TYPE tims,
    lv_end_date     TYPE dats,
    lv_end_time     TYPE tims.

*Ensure valid result.
  rv_duration = -1.

*Ensure valid time frame.
  CHECK iv_start <= iv_end AND iv_end < '99991231235959'.

*Get Service Object.
  CALL METHOD cl_ai_crm_service=>get_instance
    EXPORTING
      iv_header_guid = iv_guid
    RECEIVING
      rr_instance    = lo_service.

*Split Timestamps and convert in Application Server Time.
  CONVERT TIME STAMP iv_start TIME ZONE sy-zonlo
      INTO DATE lv_start_date TIME lv_start_time.

  CONVERT TIME STAMP iv_end TIME ZONE sy-zonlo
      INTO DATE lv_end_date TIME lv_end_time.

*Calculate Service Duration.
  CALL METHOD lo_service->calculate_service_duration
    EXPORTING
      iv_start_date    = lv_start_date
      iv_start_time    = lv_start_time
      iv_end_date      = lv_end_date
      iv_end_time      = lv_end_time
      iv_unit          = iv_unit
    RECEIVING
      rv_duration      = rv_duration
    EXCEPTIONS
      object_not_found = 1
      OTHERS           = 2.

ENDMETHOD.

Get business partner description for a given partner function or user name

*"----------------------------------------------------------------------
*"Methoden Signatur:
*"  Importing
*"    IV_GUID TYPE CRMT_OBJECT_GUID
*"    IV_PARTNER_FCT TYPE CRMT_PARTNER_FCT
*"    IV_PARTNER_PFT TYPE CRMT_PARTNER_PFT
*"  Exporting
*"    EV_NUMBER TYPE BU_PARTNER
*"    EV_DESCRIPTION_NAME TYPE BU_DESCRIP
*"    EV_DESCRIPTION_SHORT TYPE COMT_PARTNER_ADDRESS_WO_STREET
*"    EV_DESCRIPTION_LONG TYPE COMT_PARTNER_ADDRESS_W_STREET
*"----------------------------------------------------------------------
************************************************************************
* Method GET_PARTNER_OF_FCT                                            *
* Date   26.01.2015                                                    *
*                                                                      *
*----------------------------------------------------------------------*
* Get Partner for given Partner Function.                              *
************************************************************************
METHOD GET_PARTNER_OF_FCT.

  DATA:
    ls_partner          TYPE crmt_partner_external_wrk,
    lv_description      TYPE bus000flds-descrip,
    lv_description_name	TYPE bus000flds-descrip,
    lv_description_long	TYPE bus000flds-descrip_long.

  CLEAR:
    ev_number,
    ev_description_name,
    ev_description_short,
    ev_description_long.

*Get partner for a given partner function or partner function type.
  CALL FUNCTION 'CRM_PARTNER_READ_OW'
    EXPORTING
      iv_ref_guid            = iv_guid
      iv_ref_kind            = 'A'
      iv_partner_fct         = iv_partner_fct
      iv_partner_pft         = iv_partner_pft
      iv_mainpartner_only    = 'X'
      iv_get_bp_numbers      = 'X'
*     IV_REFRESH_ADDRESS_REF = ' '
    IMPORTING
      es_partner_wrk         = ls_partner
    EXCEPTIONS
      error_occurred         = 1
      parameter_error        = 2
      entry_does_not_exist   = 3
      OTHERS                 = 4.

*Partner not found.
  CHECK sy-subrc = 0.

*Get Description
  CALL FUNCTION 'BUP_PARTNER_DESCRIPTION_GET'
    EXPORTING
      i_partnerguid      = ls_partner-bp_partner_guid
    IMPORTING
      e_description      = lv_description
      e_description_name = lv_description_name
      e_description_long = lv_description_long
    EXCEPTIONS
      partner_not_found  = 1
      wrong_parameters   = 2
      internal_error     = 3
      OTHERS             = 4.

*Partner not found.
  CHECK sy-subrc = 0.

*Transfer data.
  MOVE:
    ls_partner-partner_no TO ev_number,
    lv_description_name   TO ev_description_name,
    lv_description        TO ev_description_short,
    lv_description_long   TO ev_description_long.

*Alternatively we could use function CRM_PARTNER_TO_DISPLAY_OW.
*But here we get all partners and have to filter/select the wanted partner entry with own coding.
ENDMETHOD.

*"----------------------------------------------------------------------
*"Methoden Signatur:
*"  Importing
*"    IV_UNAME TYPE SYUNAME
*"  Exporting
*"    EV_DESCRIPTION_NAME TYPE BU_DESCRIP
*"    EV_DESCRIPTION_SHORT TYPE COMT_PARTNER_ADDRESS_WO_STREET
*"    EV_DESCRIPTION_LONG TYPE COMT_PARTNER_ADDRESS_W_STREET
*"----------------------------------------------------------------------
************************************************************************
* Method GET_PARTNER_BY_UNAME                                          *
* Date   26.01.2015                                                    *
*                                                                      *
*----------------------------------------------------------------------*
* Get Partner for given User Name.                                     *
************************************************************************
METHOD get_partner_by_uname.

  DATA:
    lv_partner_guid     TYPE bu_partner_guid,
    lv_description      TYPE bus000flds-descrip,
    lv_description_name	TYPE bus000flds-descrip,
    lv_description_long	TYPE bus000flds-descrip_long.

  CLEAR:
    ev_description_name,
    ev_description_short,
    ev_description_long.

*Get Partner for Username
  CALL FUNCTION 'BP_CENTRALPERSON_GET'
    EXPORTING
      iv_username         = iv_uname
    IMPORTING
      ev_bu_partner_guid  = lv_partner_guid
    EXCEPTIONS
      no_central_person   = 1
      no_business_partner = 2
      no_id               = 3
      OTHERS              = 4.

*Partner not found.
  CHECK sy-subrc = 0.

*Get Description
  CALL FUNCTION 'BUP_PARTNER_DESCRIPTION_GET'
    EXPORTING
      i_partnerguid      = lv_partner_guid
    IMPORTING
      e_description      = lv_description
      e_description_name = lv_description_name
      e_description_long = lv_description_long
    EXCEPTIONS
      partner_not_found  = 1
      wrong_parameters   = 2
      internal_error     = 3
      OTHERS             = 4.

*Partner not found.
  CHECK sy-subrc = 0.

*Transfer data.
  MOVE:
    lv_description_name   TO ev_description_name,
    lv_description        TO ev_description_short,
    lv_description_long   TO ev_description_long.

ENDMETHOD.

Kostenfreie Dokumentationen und Leitfäden für die praxisgerechte Implementierung, Optimierung und Pflege des SAP Solution Managers

Sehr geehrte Damen und Herren.

Ich möchte gern mein Wissen und meine Erfahrungen mit Ihnen teilen. Hierzu biete ich Ihnen ab sofort ausgewählte Leitfäden und Dokumentationen zur kostenfreien Nutzung an. Die auf dieser Webseite downloadbaren Dokumente sind auf Grundlage meiner in Beratungsprojekten gewonnenen Erkenntnisse und Erfahrungen entstanden und werden kontinuierlich weiterentwickelt.

Ich hoffe, diese Dokumente werden Ihnen helfen, Ihre IT wertschöpfend auszuprägen und einzusetzen. Wenn Sie hierzu Fragen haben, Unterstützung wünschen oder zusätzliche Hilfe benötigen, dann stehe ich Ihnen gern zur Seite!

Haben Ihnen die Dokumente gefallen und geholfen? Dann teilen Sie mir dies bitte mit, damit ich dieses Angebot effektiv pflegen und ausbauen kann. Wenn Sie Fehler entdecken, konkrete Verbesserungsvorschläge haben und aktiv an der Aktualisierung und Weiterentwicklung der Dokumente mitwirken möchten, dann nehmen Sie bitte Kontakt zu mir auf.

Ich freue mich auf Ihr Feedback!

Peter Weigel

http://www.hybrid-eichhörnchen.de/sap-solution-manager/

Change Request Management Critical Objects Check and Approval

How to activate and configure the “Critical Objects Check and Approval” feature?

COA is a powerful ChaRM feature to prevent the release of transport requests containing critical objects. It can easily be activated. We need only a little bit UI Configuration (field Critical Objects), Customizing (Actions “Process Critical Object” and Partner Function “Change Manager”), Authority Assignment (Approval Authority) and Master Data Maintenance (Activation + Definition of Critical Objects).
This short guide explains all steps which need to be done. Additional it explains how to mark all changes as critical or how to mark all configuration changes of a certain customizing table as critical independent from the way of maintenance (table, view, view cluster, IMG, SE16, …).

Change Request Management Critical Objects Check and Approval.pdf (808.2 KiB)

Change Request Management Dual Landscape Synchronization with Retrofit

Handbuch zum automatischen Abgleich von systemübergreifenden Parallelentwicklungen mittels Retrofit

In Systemlandschaften, in denen an mehreren Releases gleichzeitig gearbeitet wird, können Änderungen in unterschiedlichen Entwicklungssystemen vorgenommen werden. So können im Entwicklungssystem Neuerungen entwickelt werden und gleichzeitig in einem Wartungssystem für die produktive Systemlandschaft Fehler korrigiert oder Verbesserungen vorangetrieben werden. Wichtig ist in diesem Fall der regelmäßige Abgleich der Systemstände. Da Arbeiten parallel ausgeführt wurden, sind Änderungen nicht über einfache Transporte von Aufträgen ins jeweils andere System möglich, da die Gefahr besteht, dass aktuelle Softwarestände überschrieben werden und Inkonsistenzen entstehen. Um dies zu vermeiden, können Sie einen kontrollierten Abgleich in das jeweilige Zielsystem durchführen. Dieser Vorgang heißt „Parallelabgleich“, „Duale Landschaftssynchronisierung“, „Transportnachbereitung“ bzw. „Retrofit“.

Change Request Management Retrofit.pdf (1.5 MiB)

IT Service Management & Change Request Management My Messages Widget

How to create and use own widget variant configurations?

The “My Messages Widget” feature can be used as very helpful end-user´s inbox. You are able to configure own widget variants to satisfy all business needs.
However, you have to do some developments to make these customer specific variants useable. This short guide explains which development and configurations activities need to be done to make own widget variants useable.

IT Service Management My Messages Widget.pdf (540.6 KiB)

SAP CRM & SAP Solution Manager PPF Action Condition Enhancement

How to add attributes for PPF action conditions?

The PPF action framework is a powerful framework to trigger actions (= sending smartforms or executing methods) dependent on several events & issues (= schedule and start conditions).
However in SAP standard there is only a small set of business transaction related attributes which can be evaluated. This document explains how to enhance the PPF by additional customer or SAP standard attributes with minimum development effort.

PPF Action Condition Enhancement.pdf (559.8 KiB)

SAP CRM & SAP Solution Manager E-Mail Notification Enhancement

How to send E-Mails to business partners not mentioned in the current business transaction?

We want to send e-mail notifications on certain conditions to certain partners. However some recipients are only valid on the level of predecessor transactions. SAP standard only supports e-mail notifications to partners of the current Business Transaction.
This little solution removes this limitation and opens the way to send notifications to partners of the current and predecessor transaction.

E-Mail Notification Enhancement.pdf (299.9 KiB)

SAP CRM & SAP Solution Manager Business Transaction Search Enhancement

How to implement business transaction search enhancements with minimum development?

There exist several guides in SCN. These guides always explain how to do big developments in context of search enhancement. These big development activities are needed if we need special value helps or if we need to adjust existing selection criteria or result list or if we want to enhance other searches than business transaction search.
In most cases we simply want to add some additional search criteria and result list fields. In these cases, we are able to implement this low effort solution with minimum development.

Business Transaction Search Enhancement.pdf (808.1 KiB)

SAP Solution Manager 7.1 Support Package Stack 14 kommt in KW 40

Auf den SAP Solution Manager 7.2 müssen wir noch ca. ein halbes Jahr warten. Deutlich eher, nämlich bereits in KW40 (ab 28.09.2015), wird laut SAP Support Package Stack Schedule der Support Package Stack 14 (SPS 14) für den SAP Solution Manager 7.1 verfügbar sein.

Ursprünglich wurde die Verfügbarkeit bereits für KW39 angekündigt. In KW 39 wurde die Auslieferung jedoch um eine Woche verschoben. Es ist nicht davon auszugehen, dass es analog zu 7.2 zu weiteren Verschiebungen kommen wird, da dieser Patch überwiegend Fehlerkorrekturen enthält, die per Zentralhinweis oder Seiteneffektreport schon ausführlich bei Endkunden getestet wurde ;-). Außerdem ist SP 14 technisch schon lange finalisiert und es laufen bereits die Hinweissammlungen für SP 15

Wenn Sie aktuell planen, den Zentral- bzw. Stammhinweis für SPS 13 (oder SPS 12 oder …) zu aktualisieren sollte Sie auf SPS 14 warten. Durch Upgrade auf SPS 14 ersparen Sie sich die manuellen Vor- und Nacharbeiten und Sie bekommen auch die SAP-Hinweise, die SAP nicht in den Zentralhinweis gesteckt hat.

Bei der Durchsicht der ChaRM-Hinweise fällt auf, dass einige Verbesserungen für die Vorgangssuche kommen werden. Die Performance kann sicherlich noch einige Optimierungen vertragen. Anscheinend zeigte die Vorgangssuche aber bisher auch echt falsche Informationen an. Wollen wir hoffen, dass die Vorgangssuche nun richtig schnell und immer die richtigen Daten anzeigen wird…

OK, OK…weniger manuelle Vor- und Nacharbeiten beim Implementieren des Zentralhinweises und ein paar Fehler weniger sind ja ganz nett. Aber lohnt sich denn der Upgrade überhaupt, wenn mein Zentralhinweis relativ aktuell ist? Die Antwort ist eigentlich ganz einfach: Der SPS 14 enthält ganze 275 SAP Solution Manager Hinweise. Davon ist definitiv nur ein Bruchteil im Zentralhinweis älterer SAP Solution Manager Patches enthalten. Der SPS 14 enthält aber auch ein neues Support Package der CRM-Komponente (mit 1701 SAP-Hinweise) und ein neues Support Package der SAP-BASIS-Komponente (mit 1542 SAP-Hinweisen). Und dann gibt es ja noch die Cross-Application-Komponente, die SAP-Application-Platform-Komponente, die ST/PI- und CTS-Plugins und … bei den vielen großen Zahlen wird mir ganz schwindlig…hier noch schnell die Antwort: Ja es lohnt sich!

Update: Mittlerweile ist KW 40 Vergangenheit und SAP Solution Manager 7.1 SP 14 offiziell verfügbar: SAP Solution Manager 7.1 SP 14 Online Library.

SAP Solution Manager 7.2 ITSM und ChaRM (SAP CRM 7.03 Features)

Ein Blick in die SAP CRM Release Notes offenbart: Das SAP CRM 7.0 EhP 2+3 enthält zahlreiche Verbesserungen im Umfeld SAP Web Client UI, SAP CRM Service und SAP CRM IT Service Management.

Der SAP Solution Manager 7.1 basiert auf SAP CRM 7.0 EhP 1, während der SAP Solution Manager 7.2 auf SAP CRM 7.0 EhP 3 basieren wird. Große Teile der SAP-CRM-Verbesserungen werden aufgrund der technischen Abhängigkeiten (un-)mittelbar für das SAP Solution Manager Change Request Management und SAP Solution Manager IT Service Management verfügbar und nutzbar sein.

Folglich wissen wir bereits heute, auch ohne offizielle Ankündigung seitens der SAP SE, welche neuen Features für ITSM und ChaRM verfügbar und nutzbar sein werden.

Bitte beachten Sie, dass einige Features ggf. zusätzliche SAP-CRM-Lizensen bedürfen, der Funktionsumfang aus technischen Gründen eingeschränkt sein kann, die Unterstützung ggf. möglich aber vom SAP Solution Manager Support weder bestätigt noch unterstützt/supportet wird. Außerdem kann es sein, dass einige Features gar nicht oder nur mit zusätzlichem Konfigurations- und Entwicklungsaufwand nutzbar gemacht werden können. Und natürlich wird es auch andere Neuerungen und Funktionsverbesserungen geben, die nicht aus dem SAP CRM kommen. Welche Features offiziell unterstützt werden, erfahren Sie im SAP Support Portal: SAP Solution Manager Product Roadmap und im SCN: SAP Solution Manager Wiki -> ITSM and ChaRM in SAP Solution Manager 7.2.


SAP Web Client UI (SAP CRM 7.0 EhP 2+3)

  • Corbu-Motiv
  • Kundeneigene „Berechnete Felder“ im Application Enhancement Tool (AET)
  • Verwendung von „tiefen Tabellen“ bei Felderweiterungen mittels AET
  • Werkzeug zur Analyse von Feldbezeichnern (Herkunftermittlung)
  • Drucktastenkonfiguration für Übersichtsseiten (SAP-Hinweis 1735540+1758601, SCN-Artikel http://scn.sap.com/docs/DOC-63964)
  • Definition der Tabulatorreihenfolge in Tabelle; Wertehilfe in der Tabulatorfolge global deaktivieren
  • Personalisierung und Konfiguration der Sortierung, Filterung und Spaltenbreite für Tabellen im Web Client UI (SAP-Hinweis 1855398)
  • Personalisierung der Suchoptionen (Regulär vs. Fuzzy, Übereinstimmung in %)
  • Definition von persönlichen Wertelisten (Einschränkung der Wertemenge bei großen Wertemengen oder Definition von eigenen Wertelisten bei Freitextfeldern)
  • Visuelle Anzeige customizingabhängiger Mussfelder im SAP-WebClient-UI (Mischung von Mussfeldern gemäß UI-Konfiguration und gemäß Customizing)
  • Schnellzugriff auf CRM-Aktionen (Aktionen als Drucktasten in Übersichtsseite einblenden)

Migration in den SAP CRM Standard (SAP CRM 7.0 EhP 2)

SAP Solution Manager Change Request Management und IT Service Management basieren auf dem SAP Customer Relationship Management IT Service Management. Einige explizit für den SAP Solution Manager entwickelte Features können nun durch äquivalente SAP CRM ITSM Funktionalitäten abgelöst werden:

  • Report zum Kopieren von Vorgangsarten inkl. abhängiger Customizingtabellen
  • Kopiersteuerung (Anlagen, Referenzen, Texte)
  • Zuordnungsblock für Bearbeitung von Langtexten (Ablösung von AIC_LONGTEXT durch TEXT+TEXTLOG oder GSTEXT)

Content Management und Textverwaltung (SAP CRM 7.0 EhP 2)

  • Zuordnungsblock für Bearbeitung von Langtexten (Ablösung von AIC_LONGTEXT durch TEXT+TEXTLOG oder GSTEXT)
  • Sichtbarkeit von Anlagen (abh. von Benutzerrolle -> Berechtigungsumfang für Anlagen definieren, Berechtigungsobjekt CRM_AUTHSC)
  • Schnelle Navigation zu Anlagen (Büroklammer-Drucktaste)
  • Anlagen bearbeiten (selbst wenn Vorgang gerade von anderen Benutzer gesperrt)
  • URLs anzeigen/bearbeiten selbst wenn Vorgang gerade gesperrt
  • Personalisierung der Textbereichsgröße
  • Filterung/Sortierung des Textprotokolls
  • Tagging von Notizen (bis zu 8 Wörter)
  • Kundeneigene Textformate (z.B. E-Mail, URL, Telefon, … auf Basis von regulären Ausdrücken)
  • Zusätzliche Attribute für Verschlagwortung in BOL/GenIL (Texte anhand Schlagwort ermitteln)
  • Microsoft Office 2010 wird für Vorlagen unterstützt
  • Enterprise-/TREX-Suche durchsucht auch Geschäfts­objektanlagen (SAP-Hinweis 1950354)

Reporting (SAP CRM 7.0 EhP 3)

  • Ersetzung von Adobe Flash durch SAP UI 5 beim Interaktiven Reporting
  • SAP CRM HANA Live Reporting
  • Veröffentlichen von interaktiven Berichten und SAP-HANA-Live-Berichten auf Übersichtsseite, Startseiten, Bereichsstartseiten und auf der Seite für freigegebene Berichte

Prüflisten / Check Lists (SAP CRM 7.0 EhP 2+3)

  • Findung gemäß Vertrag/Produkt
  • Benachrichtigung bei Fälligkeit
  • Suche nach Vorgängen zu bestimmten Prüflistenschrittattributen in Vorgangssuche
  • Berechnung der Prüflistenschrittdauer
  • Texte „Bemerkung“, „Arbeitsanweisung“ und „Zusätzliche Notiz“
  • Änderungsprotokollierung
  • Entscheidungsbasierte Prüflisten (Flexible Definition von Prozessen und Schritten; Schrittergebnis hat Auswirkung auf Folgeschritt; Möglichkeit, Arbeits­anweisungen, Verantwortliche, Kommentare und andere Informationen in Prozesse und Schritte einzubinden; Möglichkeit, Links zu Transaktionen einzubinden und Aktionen in Prozessen und Schritten auszulösen)

Benachrichti­gungs­framework / Alert Framework (SAP CRM 7.0 EhP 2)

  • Beobachten von Vorgängen und automatische Benachrichtigung abhängig von verschiedenen Kriterien
  • Mailfomulare: Zuordnung zu Benutzerrolle, weitere Attribute für Platzhalter, PDF-Anlage mit Infos zu Vorgang

Management von Bearbeitungs­zeiten / Process Time Management (SAP CRM 7.0 EhP 2)

  • Überwachung der Bearbeitungszeit (Statusfluss)

Schwarzes Brett / Bulletin (SAP CRM 7.0 EhP 2)

  • Objektbezogene oder objektunabhängige (System-)Meldungen veröffentlichen

Infoblatt / Fact Sheet (SAP CRM 7.0 EhP 2)

  • Bidirektionale Integration Geschäftspartner, Serviceanforderung und Informationsblatt  (Aktionen und Zuordnungsblöcke)

Wissensartikel / Knowledge Articles (SAP CRM 7.0 EhP 2)

  • Wissensartikel als Zuordnungsblock statt Aktion im Vorgang
  • Konfiguration der Findung (nicht mehr nur über Multi-Level-Kategorie)

Inbox (SAP CRM 7.0 EhP 2+3)

Zahlreiche Optimierungen und Beschleunigungen der Inbox-Suche

Bearbeitungs­protokoll / Change Log (SAP CRM 7.0 EhP 2)

  • Filterung nach Zeitraum in Änderungshistorie (SAP-Hinweis 2013500)
  • Protokollierung von Prüflisten, Kategorien, Terminen, SLA-Schema-Änderungen (nach entsprechender Konfiguration)

Geschäftspartner / Business Partner (SAP CRM 7.0 EhP 2+3)

  • Ortszeit der Geschäftspartner (neue Felder an relevanten Stellen)
  • Anzeige von Ansprechpartnerinformationen (Zusätzliche Partnerinformationen direkt in Detailsformular; Definition einer ausgewählten AP-Partnerfunktion)
  • Dublettenprüfung für Geschäftspartner auf der SAP-HANA-Datenbank (kostenlos)

Regeleditor für Approval Management, Checklist, … (SAP CRM 7.0 EhP 2)

  • Weitere Attribute und Aktionen
  • Häufig benötigte Aktionen als Drucktaste oder One-Click-Action
  • Vertikaler Splitter zur Bereichsvergrößerung

eSOA (SAP CRM 7.0 EhP 2+3)

  • Zahlreiche weitere Webservices für Zugriff auf Stamm- und Bewegungsdaten (Geschäftspartner, Vorgänge, …)

Business Functions SAP CRM 7.0 EhP 1

Folgende Business Functions sind bei Nutzung von ITSM oder ChaRM zu aktivieren um die zuvor beschriebenen Features nutzen zu können:

  • CRM_SOA_1_DOCU: SOA-Dokumentation
  • UI_FRW_1: UI-Framework
  • UI_FRW_1_DOCU: UI-Framework-Dokumentation
  • CRM_KA_CI_2: Wissensartikel
  • CRM_INF_1: Infrastruktur
  • CRM_TM_1: Vergrößerter Textbereich und Filter im Textprotokoll
  • CRM_SLS_SRV_1: Verkauf und Service
  • CRM_SRV_1: Service Management
  • CRM_MKT_ML_PRD: Marketing, Effizientere Mailformulare
  • CRM_IC_CEBP: IC und kommunikationsgestützte Geschäftsprozesse
  • CRM_IC_TUI: Aufgabenbasierte Benutzungsoberfläche für Interaction Center
  • CRM_RMD: Regeleditor-Bedienbarkeit
  • CRM_SHSVC: Mehrfunktionales Shared Service Interaction Center
  • CRM_SLS_SRV_MOBILE_1: Verkauf und Service für Gateway zu SAP NetWeaver Mobile
  • CRM_ANA_BOB: SAP-BusinessObjects-Integration und interaktives CRM-Reporting

Business Functions SAP CRM 7.0 EhP 2

Folgende Business Functions sind bei Nutzung von ITSM oder ChaRM zu aktivieren um die zuvor beschriebenen Features nutzen zu können:

  • UI_FRW_2_DOCU: WebClient-UI-Framework-Dokumentation
  • CRM_WFI_FILTER_1: Filter für Workflow-Eingang
  • CRM_TCI_1: Reduktion der Implementierungszeit
  • CRM_ES_BY_ATTACHMENT: Suche in Business-Objektanlagen
  • CRM_KA_CI_1: Wissensartikel
  • CRM_ITSM: Erweiterungen für Serviceanforderungen
  • CRM_ITSM_ALERTS: Benachrichtigungs-Framework und Email
  • CRM_ITSM_PROCESS_TIME_MGMT: Management von Bearbeitungszeiten
  • CRM_ITSM_BULLETINS: Schwarzes Brett
  • CRM_ITSM_FS: Infoblatt zur Serviceanforderung
  • CRM_ITSM_COM: Content Management und Textverwaltung
  • CRM_IC_INBOX_ACC: IC-Inbox-Erweiterungen und –Beschleunigung
  • CRM_IC_INBOX: IC-Inbox-Erweiterungen

Business Functions SAP CRM 7.0 EhP 3

Folgende Business Functions sind bei Nutzung von ITSM oder ChaRM zu aktivieren um die zuvor beschriebenen Features nutzen zu können:

  • CRM_TCO_1: TCO-Reduzierung im Business Partner
  • CRM_SEARCH_1: Einfache Suche nach Geschäftspartnern und Produkten
  • CRM_MD_CPM: Erweiterungen zur Bedienbarkeit der Stammdaten
  • CRM_LST_CPM: Erweiterungen zu Listungen
  • CRM_SHSVC_2: Servicekonfigurator für Shared Services
  • CRM_IC_INBOX_2: IC-Inbox-Erweiterungen 2
  • CRM_ANA_UI5: Interaktives Reporting mit UI Development Toolkit for HTML5
  • CRM_ANA_OR_ODATA: SAP CRM HANA Live Reporting
  • CRM_EMBED_IR_ANA_UI: Eingebettetes interaktives Reporting und SAP HANA Live Reporting (Analytics)

Auslieferung von SAP Solution Manager 7.2 verschoben

Gemäß PAM endet die Wartung für den SAP Solution Manager 7.1 im Dezember 2017. SAP stellt üblicherweise ca. zwei Jahre vorher ein neues Release zur Verfügung, so dass Endkunden ca. zwei Jahre Zeit für den Umstieg haben. Demnach müsste Ende 2015 ein neues Release bereitstehen.

Gemäß PAM gibt es aktuell ein Brückenrelease SAP Solution Manager 7.12 for HANA (ST 712). Dieses Release basiert auf SAP Netweaver 7.40 und SAP CRM 7.0 EhP 2 for HANA (SAP_BASIS 740 und BBPCRM 712). Die Wartung endet im Dezember 2015 (, weil dann voraussichtlich das Folgerelease offiziell verfügbar sein wird?!).

Sämtliche offiziellen und inoffiziellen Ankündigungen gingen einhellig von einem Start des Rampups im Q3/2015 und einer generellen Verfügbarkeit zum Jahresende 2015 aus.

Aktuelle Ankündigungen im SAP Innovationskalender und in [Deepdive Session] How to best prepare for SAP Solution Manager 7.2 today! kommunizieren jedoch einen Rampupstart zum Ende des Jahres 2015 und eine allgemeine Verfügbarkeit des neuen Releases ab Mitte 2016.

Folglich müssen wir uns noch etwas gedulden. Aber wie heißt es so schön: Vorfreude ist die schönste Freude.

Wer aber definitiv nicht bis Weihnachten 2015 warten kann, erfährt hier, welche Features im SAP Solution Manager 7.2 IT Service Management und SAP Solution Manager 7.2 Change Request Management kommen werden.

Bücher für die praxisgerechte Implementierung, Optimierung und Pflege des SAP Solution Managers

Sehr geehrte Damen und Herren,

Bücher werden von erfahrenen Beratern und Anwendern geschrieben, damit Sie als Leser direkt von dem erworbenen Wissen und den gemachten Erfahrungen in konsolidierter und aufbereiteter Form profitieren können. Die finanziellen Investitionen sind für Sie sehr gering und die Vorteile mit Blick auf Effektivität, Effizienz und Qualität sehr hoch.

Ich möchte Ihnen gern helfen und habe für Sie eine Liste aller mir bekannten (SAP-PRESS-)Bücher mit direktem Bezug zum SAP Solution Manager zusammengestellt. Ich hoffe, dass diese Bücher Ihnen helfen werden, Ihre IT wertschöpfend auszuprägen und einzusetzen. Wenn Sie hierzu Fragen haben, Unterstützung wünschen oder zusätzliche Hilfe benötigen, dann stehe ich Ihnen gern zur Seite!

Wenn Sie ein hier nicht gelistetes SAP-Solution-Manager-Buch kennen oder ein hier gelistetes Buch als veraltet identifizieren, dann nehmen Sie bitte Kontakt zu mir auf. Diesen kostenfreien Service kann ich nur mit Ihrer Hilfe und Ihrem Feedback dauerhaft am Leben erhalten.

Ich freue mich auf Ihr Feedback!


www.sap-press.de


SAP Solution Manager 7.1 IT-Servicemanagement Web UI
Daniel Kloppich, Bert Lorenz
1. Auflage, 2015
espresso tutorials, ISBN 978-3-945170-55-7

IT-Service-Management mit dem SAP Solution Manager
Torsten Sternberg, Matthias Friedrich
1. Auflage, 2012
SAP PRESS, ISBN 978-3-8362-1918-1

IT Service Management in SAP Solution Manager
Nathan Williams
1. Auflage, 2013
SAP PRESS, ISBN 978-1-59229-440-4

[Es handelt sich hierbei NICHT um eine Übersetzung des vorangehenden Titels.]

SAP-Änderungs- und Transportmanagement
Armin Kösegi, Rainer Nerding
4. Auflage, 2013
SAP PRESS, ISBN 978-3-8362-1917-4

Monitoring und Betrieb mit dem SAP Solution Manager
Lars Teuber, Corina Weidmann, Liane Will
1. Auflage, 2013
SAP PRESS, ISBN 978-3-8362-1855-9

SAP Solution Manager
Marc O. Schäfer, Matthias Melich
3. Auflage, 2011
SAP PRESS, ISBN 978-3-8362-1737-8

SAP Service und Support – Innovation und kontinuierliche Optimierung
Gerhard Oswald
4. Auflage, 2013
SAP PRESS, ISBN 978-3-8362-2634-9

SAP CRM – Funktionen, Prozesse, Customizing
Carsten Engmann
1. Auflage, 2014
SAP PRESS, ISBN 978-3-8362-2487-1

Service mit SAP CRM
Jörg Unger, Markus Kirchler, Dirk Manhart
1. Auflage, 2008
SAP PRESS, ISBN 978-3-8362-1060-7

SAP Web Client – Das umfassende Handbuch für Entwickler
Tim Back, Michael Füchsle, Uwe Reimitz
1. Auflage, 2010
SAP PRESS, ISBN 978-3-8362-1509-1

SAP Web Client – A Comprehensive Guide for Developers
Tzanko Stefanov, Armand Sezikeye, Sanjeet Mall
1. Auflage, 2011
SAP PRESS, ISBN 978-1-59229-389-6
[Es handelt sich hierbei NICHT um eine Übersetzung des vorangehenden Titels.]

SAP CRM: Technical Principles and Programming
Stephen Johannes
1. Auflage, 2013
SAP PRESS, ISBN 978-1-59229-439-8

SAP CRM praxisgerecht erweitern
Ralph Ellerbrock, Oliver Isermann
1. Auflage, 2010
SAP PRESS, ISBN 978-3-8362-2151-1

Bonus:

Two Value Releases per Year (SAP)

Custom Development Guideline (SAP)

Handlungsempfehlungen, Leitfäden und Strategiepapiere (DSAG)

SAP Solution Manager Dokumentationen, Schulungen und Demos

ITIL Wiki
SAP Solution Manager Wiki
SAP Solution Manager Help
SAP Solution Manager Rampup Knowledge Transfer (RKT)
SAP Solution Manager Support
SAP Solution Manager Education and Certification
SAP Solution Manager Demo
SAP CRM Wiki
SAP CRM Help
SAP Netweaver Help
SAP Change and Transport System Help
SAP Integration and Certification Center (SAP ICC)

SAP Solution Manager Definition

Der SAP Solution Manager ist die zentrale IT-Komponente zur Steuerung, Verwaltung und Unterstützung der Implementierung, der Optimierung und des Betriebs Ihrer SAP-Lösung.

Der SAP Solution Manager ist das einzige IT-Service-Management-Werkzeug, das Best-Practices aus den zahlreichen ITIL-, SAP- und Kunden-Erfahrungen vollständig und konsistent in sich vereint und zudem individuell an Ihr Unternehmen angepasst werden kann.

Der SAP Solution Manager ist das kosten­günstigste, innovativste und am besten geeignete Hilfsmittel zur Steigerung und Aufrecht­erhaltung von Qualität und Effizienz für Ihre SAP-Betriebs-, SAP-Beratungs- und SAP-Entwicklungs­abteilung.