SAP CRM: Marketing Segmentation/Target Group Management
Quick note to self - SAP provides the following reports to manage segmentation and target groups:
Quick note to self - SAP provides the following reports to manage segmentation and target groups:
CRM Action processing conditions are evaluated in function module SWJ_EVALUATE_PARA_CONDITION
For the actual evaluation set breakpoint in CL_SWF_RLS_BINARY_COMPOP=>IF_SWF_RLS_COMPOP~EVALUATE
Attachments of a CRM order object cannot be retrieved via relation. You need to perform a separate BOL query.
First of all, this blog contains some of the steps required to configure pricing. But in case it goes away, I'm listing the steps here as well.
First item of note is that not all the steps in the blog are actually required, e.g. if your access sequence does not use product, you don't need to maintain anything at the product level. And some of the steps were missing (at least in my case).
Quick note: if you're trying to find out what's going on with your BPATH statement and you want to debug the traversal thereof, the central entrypoint is method CL_WCF_BPATH_PARSER=>STATUSMACHINE. This splits the string and acts on the segments.
Method CL_WCF_BPATH_PARSER=>PROCESS_ACTION is then called to delegate processing of the different segment types to different methods.
If you want to remove messages from a CRM order and you want the message to be removed at the database level (not only at the UI level), for instance, to be able to remove errors that prevent you from creating a follow-up document (follow-up documents can only be created from error-free documents), you may find the following code snippet useful:
Note that the following is using function modules because the BOL layer does not provide the appropriate method calls:
In WebUI, say you have a search attribute OBJECT_ID that is labelled "Object ID" on the UI search screen. How do you retrieve that label "Object ID" at runtime (i.e. to output an error message for mandatory field check)?
Simply call
me->get_possible_fields( ).
inside the implementation class methods (i.e. DO_PREPARE_OUTPUT etc.)
BTW, in all other contexts, to get the text representation of a technical field (say you are reading field communication type, and the technical value (result of get_property_as_string()) is TEL) simply call
I've recently faced the requirement to retrieve the BP in the manager role (head) of an orgs parent org. In CRM, you can use function module RH_STRUC_GET to do just that: Supply it with a starting point (BP, central person, position or org unit) and it will do its work according to the evaluation path given.
First off, attachments are completely independent from the rest of the transaction. As soon as you add the attachment, it's saved on the DB - no need to save the transaction.
If you're looking for standard source code how to add attachments to an object, set a breakpoint in CL_CRM_DOCUMENTS=>CREATE_WITH_TABLE and upload an attachment. (CL_CRM_BSP_CM_CONTROL=>CREATE_DOCUMENT contains some useful methods to fill the parameters.)
Once the attachment is saved, you can find it in the following tables:
When you debug the function modules that read the org structure you quickly notice that no DB access takes place. This is because the org data is stored in an internal buffer (cluster table).
So whenever you changed the org structure, make sure you run report HRBCI_ATTRIBUTES_BUFFER_UPDATE to refresh the buffer.