Creating RFCs which emulate program activity - best practice.
Hi, First post on the forum so please be kind I'm hoping I've posted in the correct place.
I'm looking at creating a few RFCs to enable a bit of automation. Theory is that details are passed into the RFC and the function does some magic to update the system, hitting all the BRFs etc. The transaction I'm looking at is ICLCDC02, we're quite a few patches behind so there is a lot of good RFC stuff I just don't have access to.
My first attempt simply calls the relevant functions detailed in the program and ticks all the boxes but I have concerns. Then I had a look at BDC and found that SHDB couldn't replay some fo the screen selections - just errored out (and that was with a straight record and playback - no modification) so BDC is out for that reason and also some logic would be required so BDC is not really a good candidate IMO. My plan is to stick to calling the relevant functions which I feel may introduce some maintenance overhead.
Is there any pest practice for situations like this? Is there a way to run the transaction without dialog, call the relevant functions to add records etc accessing the global memory of the transaction then close/save ensuring that all future BRF changes etc get hit? If this is possible then it would greatly reduce/eliminate the maintenance overhead and get rid of my nagging doubt.
Or is my current approach the correct one?
Many thanks.
Hello,
"This will send work item to user (pr creator) sap inbox which when they double click it will complete the workflow."
It sounds liek they are sending a workitem where an email would be enough. By completing the workitem they are simply acknowledging that they have received notification of the completion of the PR.
"Our PR creator will receive notification of the PR approval to theirs outlook mail handled by a program that is scheduled every 5 minutes."
I hope (and assume) that they only receive the email once.
I would change the workflow to send an email (SendMail step) to the initiator instead of the workitem. That is normally what happens. Either that or there is no email at all - some businesses only send an email if something goes wrong. Of course, the business has to agree to this change.
Having that final workitem adds nothing to the process. Replace it with an email.
regards
Rick Bakker
hanabi technology
Similar Messages
-
Which one is the best practice!!
hi all,
i have one doubt with the lov
can we show the data in the LOV by decode function or its better to write two LOV's based on the condition.
which one is the best practice.
right now i am using decode function. according to the condition the data will come in the LOV.
Thanks..can we show the data in the LOV by decode functionAs you already do, you can.
its better to write two LOV's based on the condition.It depends. If its a complex lov and only one column varies based onsome condition, it might less work to use just one lov. Personally, i prefer two different lov's -
Programming Asignment - Best Practices
Hello,
Can anybody give me links/info of Best Practices on Distributing one big ABAP program composed of dialog screens, reports, and some batch input to more than one programmers?
Thanks,
JeffHi Jeffrey,
I am not sure if there are any such best practices documentation available. But creating one big ABAP program that does so many things itself, is not considered a best practice.
Correct me if I am wrong here, you want one ABAP program that gives the user a choice of reports, batch input programs and transactions(dialog screens) to choose from, and then branch out to individual functions that the users chose. This looks like more like a area menu functionality. This is how I would distribute the load, assuming my statement of your problem is correct.
Separate out each individual report, batch input and dialog components into individual programs and assign it to individual programmers. Then have one person assemble them into one area menu(the name of which will also become your transaction code.). Alternatively, you can have a wrapper ABAP program that makes all the calls to these individual programs based on user choice(which will be the selection screen for this program).
Please let me know if this helped.
Srinivas -
Do We Modify 9AMATNR or Create Z9AMATNR? What is the Best Practice?
Years ago, when started up our SAP BW system, we were taught to activate delivered content (like 0MATERIAL) and then MODIFY IT -- there was no reason to copy it to our own "Z" object in order to modify. Now we are beginning an SAP APO DP project. Does the same rule hold true? Do we modify 9AMATNR, or do we copy it to Z9AMATNR and then modify Z9AMATNR? What is the best practice, and why? THANK YOU!
Hi Laurie,
I have to agree with the rest of the responses - create a "Z" object. We did something similar with 9ALOCNO - we created a Z9ALOCNO characteristic so that we could create new attributes.
If you create a Z9AMATNR, you can assign the product (and location) characteristics in the Master Planning Object Structure so that the system knows that your Product characteristic is Z9AMATNR and not 9AMATNR. This may save you a headache later when you transfer the forecasts to SNP.
1. use transaction /SAPAPO/MSDP_ADMIN
2. open up the MPOS in question
3. menu path Edit -> Assign Product / Location
4. enter the product and location characteristics
5. save and exit
Dan -
Active - Active best practices
Hello
Are there any best practice white papers on a Active-Active GG configuration?
I've read chapter 8 "Using GoldenGate for active-active high availability" in the Admin Guide here:
-http://download.oracle.com/docs/cd/E18101_01/doc.1111/e17341.pdf
I also found this pdf:
-http://www.oracle.com/dm/offers/fy10/wp-oracle-goldengate_activeactive_final.pdf
Any other documentation would be much appreciated.
ThanksHi All,
I am looking for some ideas and steps to put my AD domain for Public / Internet Facing. Appreciate your help in advance.
If you are asking about best practices then do NOT place AD for public as mentioned before. If you have remote users, they can still accept group policies if they have appropriate infrastructure like VPN available. Otherwise you can start from here:
Active Directory Domain Services in the Perimeter Network (Windows Server 2008)
Mahdi Tehrani |
|
www.mahditehrani.ir
Please click on Propose As Answer or
to mark this post as
and helpful for other people.
This posting is provided AS-IS with no warranties, and confers no rights.
How to query members of 'Local Administrators' group in all computers?
Hi Mahdi,
MY DC runs on win 2012.
Regards, Prabhu -
Where to create root BOL in custom component - best practice
Hi Experts,
I have created a BOL class to insert values into a ZTable.
I have created a custom component/views for the BOL. Now how will the create method in the BOL will be called. In which method of the component controller or view controller do I create the BOL root..
I want to use the following code.
CALL METHOD SUPER->WD_CREATE_CONTEXT
DATA:
lref_substitute TYPE REF TO if_bol_bo_property_access,
lv_index TYPE i,
lref_bol_entity TYPE REF TO cl_crm_bol_entity,
lrf_cuco TYPE REF TO cl_gs_mcat_mcat_impl,
lref_bol_core TYPE REF TO cl_crm_bol_core,
lv_object_name TYPE crmt_ext_obj_name VALUE cl_crm_catego_genil=>gc_ob_schema,
lv_create_param TYPE crmt_name_value_pair_tab,
lv_number TYPE int4 VALUE 1,
lref_new_substitute TYPE REF TO if_bol_entity_col,
lr_tx TYPE REF TO if_bol_transaction_context
lref_bol_core = cl_crm_bol_core=>Get_instance( abap_true ).
lv_object_name = 'ZHRUS_D2'.
TRY.
CALL METHOD lref_bol_core->root_create
EXPORTING
iv_object_name = lv_object_name
iv_create_param = lv_create_param
iv_number = lv_number
RECEIVING
rv_result = lref_new_substitute.
CATCH cx_crm_unsupported_object .
ENDTRY.
CHECK lref_new_substitute IS BOUND.
lref_substitute ?= lref_new_substitute->get_first( ).
CHECK lref_substitute IS BOUND.
me->typed_context->zhrus->collection_wrapper->clear( ).
me->typed_context->zhrus->collection_wrapper->add( iv_entity = lref_substitute ).
I give the code in various methods and it all works fine. But what is the best way to create the root node.
Regards,
Abdullah IsmailHi Abdullah,
I use something like this to create a root entity in the BOL Core. In this case, a standard entity: BTOrder.
*- Data dictionary
DATA lr_core TYPE REF TO cl_crm_bol_core.
DATA lr_fac TYPE REF TO cl_crm_bol_entity_factory.
DATA lt_params TYPE crmt_name_value_pair_tab.
DATA lr_ent TYPE REF TO cl_crm_bol_entity.
FIELD-SYMBOLS <line> TYPE crmt_name_value_pair.
*- Get the core instance and factory
lr_core = cl_crm_bol_core=>get_instance( ).
lr_fac = lr_core->get_entity_factory( 'BTOrder' ).
*- get supported parameters for this object
lt_params = lr_fac->get_parameter_table( ).
*- Set the process Type
READ TABLE lt_params ASSIGNING <line> WITH KEY name = 'PROCESS_TYPE'.
<line>-value = '0010'.
*- Create the BOL entity, based on parameters
lr_ent = lr_fac->create( lt_params ).
lr_ent = lr_ent->get_related_entity( 'BTOrderHeader' ).
*- Lock order
CHECK lr_ent->lock( ) = abap_true.
It is an alternative way. Check if it helps you creating your Z-Object in the BOL root
Kind regards,
Garcia
Edited by: Bruno Garcia on May 12, 2011 12:15 PM -
Typekit vs Edge Fonts -- which is better? Best practices?
I'm not sure I understand the difference between the Edge Web fonts and having a Typekit. In this case I'm using Source Sans Pro, which is available under both.
In my first attempt at generating a Reflow project, I had the text in Photoshop set in Source Sans Pro, with a copy of the font active on my Mac (via FontXplorer). When I did my first 'Generate' test the text came through without the font, just a 'Browser Default.' But I do believe that Source Sans was available as a choice in the Syling tab.
For my second attempt, I deactivated the local font and instead turned it on in my Typekit* under Creative Cloud, and reopend the Photoshop doc with that version (the layers had to Update, and all was well). This time when I generated the Reflow project, the type came through as Source Sans Pro.
So, which is the best way to use these fonts in Reflow? I do notice that the CSS only says "font: source sans pro", which means I'm still going to have to manually add the specific font codes to my HTML and CSS by hand, correct?
*I saw in a demo video (which I can't find now, otherwise I would link it) where a guy who generated a Reflow project from Photoshop that contained Typekit fonts, that Reflow would ask you to enter the Kit ID in a pop-up window, then re-select your fonts to match what you originally chose in Photoshop. In my second attempt I was using the Typekit version of the font but I was not prompted for the Kit ID like this upon opening the Reflow doc. Has this feature been changed or removed since then? I was able to enter the Kit ID in the 'Custom' tab when I chose 'Manage fonts', but then I had duplicates listed in my font menu until I deactivated the Edge version.
Sorry for the long post -- just wondering which way is best since Edge Fonts and Typekit seem to have redundant functionality!
JVKFirst there shouldn't be a difference between the two. I think the only suggestion is to try and not use both. You can and it is supported, but results in more http requests because all your selected edge web fonts are loaded in one file and your selected typekit fonts are loaded in another and those can't get combined into one single file.
Also, if you are just syncing your fonts using the Creative Cloud to get them on your desktop but not adding they to a typekit "Kit" and using your kit ID in the dialog, or not seeing the dialog at all, then the Edge Web Fonts were selected for you automatically.
I think the reason Source Sans Pro didn't work the first time Reflow hadn't finished downloading the full font list from the servers. This list is cached locally so the next time you use that font we'd find it in the list and select it for you. If Relow finds matches for all the fonts you used it won't popup the font picker dialog. If that dialog does pop and that list doesn't have your Edge Web Font available you can add it to the list by selecting Manage Fonts from that menu.
Hope that helps and thanks for useing Refow. Let us know how you like the Photoshop import and any other things we can do to improve it. -
About program SAPKKA12 - best practice?
Hello,
I like to know if it is recommended to schedule automatically periodically the program SAPKKA12?
Also, I am looking for a description of what the program was intended to do and perhaps how to use it effectively.
ThanksHi,
You can not run this program in back ground. Because there are GUI Functional modules which will not work in background. For this you need RFC. Take technical consultant help.
This program is related to some CO stuff (Result analysis key) . Are you using PS module ?
Go through this OSS note 438629.
Regards,
Chandra -
Advice on Best practice for inter-countries Active Directory
We want to merge three active directories with on as parent in Dubai, then child in Dubai, Bahrain and Kuwait. The time zones are different and sites are connected using VPN/leased line. With my studies i have explored two options. One way is to have parent
domain/forest in Dubai and Child domain in respective countries/offices; second way is to have parent and all child domains in Dubai Data center as it is bigger, while respective countries have DCs connected to their respective child domains in Dubai. (Personally
i find it safer in second option)
Kindly advise which approach comes under best practice.
Thanks in advance.Hi Richard
Mueller,
You perfectly got my point. We have three difference forests/domain in three different countries. I asked this question becuase I am worried for problems in replications.
And yes there are political reasons due to which we want to have multiple domains under one single forest. I have these following points:
1. With multiple domains you introduce complications with trusts
(Yes we will face complications that is why I will have a VM where there will be three child domains for 3 countries in HQ sitting right next to my main AD server which have forest/domain - which i hope will help in fixing replication problems)
2. and
accessing resources in remote domains. (To address this issue i will implement two additional DCs in respective countries to make the resources available, these RODCs will be pointed toward their respective main domains in HQ)
As an example:-
HQ data center=============
Company.com (forest/domain)
3 child domain to company.com
example uae.company.com
=======================
UAE regional office=====================
2 RODCs pointed towards uae.company.com in HQ
==================================
Please tell me if i make sense here. -
Creating Validations,what's the best practice?
Good Day Folks
I need help in creating validations.
I know that thereu2019s GGB0 which contains OKC7 for CO validations and OB28 for FI Validations.
My concern what are the detailed steps for creating Validations.
Is there a best practice?
Is there anyway to link the validations created in CO to that of FI or do they need to be created in each?
Regards
Just
Edited by: Just J on Jan 25, 2012 2:24 PM
Moderator: Please, search before postingHi
Could you tell us the business requirement?
So that we can help you
Thanks
Vishnu -
Which wayis the best practice ?
Hi ,
I am doubt of which way is the best practice to initialize instance component in a Panel.
ie .is there any diference, in terms of performance , between initializing component inside the constructor or just outside of constructor?
1)
public class MyPanel extends JPanel
private static JScrollPane scrollPane = new JScrollPane();
public CustomerTaskPane()
2)
public class MyPanel extends JPanel
private static JScrollPane scrollPane = null;
public CustomerTaskPane()
scrollPane = new JScrollPane()
}Correction for the above reply.
*btw can i avoid from declaring the static field of a class itself when i need to implement the class which follows Singleton pattern like.
public class CustomerMainPanel extends JPanel
public static CustomerMainPanel customerMainPanel = null;
public static synchronized CustomerMainPanel getInstance()
if( customerMainPanel == null )
customerMainPanel = new CustomerMainPanel();
return customerMainPanel;
} -
Best practice followed on CONTRACT
Hello All
What are the best practice needs to be followed on changing the material data information ,
Step 1. created a contract for Material and PO released agains contract. later some times.
Step 2:- material master changes some important piece of data like order Unit/ Deletion or material group changes on MATERIAL.
step 3:- We do the same for the materials in the contract and deactivate the w.r.t line and create a new line item so that my new line item picks up from material master.
What are the other incidents material master team may do on material master so that i can inform the contract team to do the same.
What are the actions material master team may do on MATERIAL and which is relavant for contract data.so that i can alert CONTRACT and MATERIAL master team. so that communication will be seemless.so that every thing perfect and sync.
MuthuPlease check these answered links:
Contract best practices
good practices in SAP Value Contract
Best Practice while creating Contract, Purchase Requisition, Purchase Order
Best Practice unit of measurement usage in CONTRACT. -
Best practice of OSB logging Report handling or java code using publish
Hi all,
I want to do common error handling of OSB I did two implementations as below just want to know which one is the best practice.
1. By using the custom report handler --> When ever we want to log we will use the report action of OSB which will call the Custom java class which
Will log the data in to DB.
2. By using plain java class --> creating a java class publish to the proxy which will call this java class and do the logging.
Which is the best practice and pros and cons.
Thanks
PhaniHi Anuj,
Thanks for the links, they have been helpful.
I understand now that OSR is only meant to contain only Proxy services. The synch facility is between OSR and OSB so that in case when you are not using OER, you can publish Proxy services to OSR from OSB. What I didn't understand was why there was a option to publish a Proxy service back to OSB and why it ended up as a Business service. From the link you provided, it mentioned that this case is for multi-domain OSBs, where one OSB wants to use the other OSB's service. It is clear now.
Some more questions:
1) In the design-time, in OER no Endpoints are generated for Proxy services. Then how do we publish our design-time services to OSR for testing purposes? What is the correct way of doing this?
Thanks,
Umar -
What is the best practice to consume RMI Service
hi ,
i have rmi solution client server
i want to know which one is the best practice and more stable approach from one of the below.
1. initialize / consume the service once only
maybe can do it in static block
Example : static {
//some object = Naming.lookup("rmi://192.168.0.130/RMIServer");
2. Everytime client perform some activity and need to invoke rmi server
then consume the service
Example :
public String getQuote(String quoteNumber){
}Esentially both.
Each time you do #2, but if it fails, then you do #1. You never know when its going to fail. failure is a normal part of TCP communication so be prepared to handle it gracefully as if its not even a failure. -
Best practices for coding in Exits
Does anyone have any documents on the Dos and Don'ts in BADIs, Exits and SD routines from the angle of System performance and how to minimise the load. Iam not talking about the generic Optimisation documents but something specific to SD routines and general BADIs and Exits which fall under the Best practices (coding) of SAP. eg. One guideline from SAP is that Clients should not tamper with the 'x' variables (xvbak, xvbap etc.) in the SD form exits.
Thanks,
MadhavanNot sure why check is a problem in general however it reminds me on another tricky situation.
For exampele there is a user-exit in CO-PA
call customer-function '001'
exporting
erkrs = i_erkrs
ep_source = <ls_ce1xxxx>
ep_source_bukrs = <gs_ce_bukrs>
exit_nr = i_exit_nr
importing
ep_target = <ls_ce1xxxx>
ep_target_bukrs = <gs_ce_bukrs>
e_bukrs_processed = l_bukrs_processed
et_field = gt_field_user
tables
gt_message_table = gt_message_table
exceptions
others = 1.
as you can see <ls_ce1xxxx> is passed on ep_source and ep_target. If you have several clients but only one in which the user-exit should be active, you usually encapsulate your coding like following.
if sy-mandt = '100'.
ep_target = <changed_values>.
endif.
But in this case you will learn that in every other client the values of ep_source will be cleared if you do not add a statement like ep_target = ep_source.
before the if statement.
Christian
Maybe you are looking for
-
IPhoto Crashes everytime I open it
Hello, I was wondering if someone could help me out here? iPhoto '11 (Latest update) keeps on crashing everytime I open the program, so I have to force quit it. This issue arose a few weeks ago even before any Apple iLife updates. I initially though
-
After importing word document in RH 9, why does the position of image changes
Hi All, I have a document which i need to import in RH9. However when i imported the document, the position of the images on my first page changed. i read several discussion, but could nt get any relevant suggestion. the first page of my document has
-
How to delete modified version datasource
I have a datasource in M version and A version. I am getting datasource activation error in BI 7.0 Please let me know how to delete Modified version. Thanks Liza
-
Suddenly I have problems moving files to the trash... get a dialog saying Finder wants to make changes and I must provide the password... Any explanation or ideas how I can get this to stop?
-
hi all i want to retrieve a form name and assign it to a variable how can i implement it. thnks and regards