Customer-Specific Solutions and Template Solutions
In the article “Scalable Solutions, Solution Templates, Customer-Specific Solution showing the difference”, Ralf Baumann introduced the different solution types that can be developed using SAP Business ByDesign studio or SAP Cloud Developer studio.
In this document, I will provide some background information on the different solution types. The following table shows an overview on the different solution types and their properties.
|Customer-Specific Solution||Template Solutions|
|Target group||Reseller, implementation partner, customer||Reseller, implementation partner, solution partner|
||Create re-usable solutions that can be imported into custom-specific solutions|
|Selling Process||Can only be deployed for 1 customer||Can be imported in multple custom-specific solutions of different customers.|
|Deployment and Updates||
||Import into custom-specific solutions as self-service via the studio (no SAP involvement)|
|Tenant Landscape Scenarios||
|Availability||ByDesign, Customer OD, Travel OD, Financials OD, general available.||ByDesign, Customer OD, Travel OD, Financials OD, general available.|
(There is another solution type, local solutions which are available in SAP Business ByDesign studio. They are for test purpose only and therefore not listed in the table. It is deprecated as of ByDesign 1302.)
Customer-specific solution are dedicated for one customer. Download/upload is technically restricted to tenants having the same Customer ID.
- … can be downloaded/uploaded to tenants having the same ByDesign, CustomerOD, … version. Note: Normally the PRD and the TST tenants of a customer are upgraded by SAP at the same point in time, so that different SAP versions between PRD and TST tenant should not occur.
- … can be copied (“deep copy”), for example for testing, fixing a project milestone, …. (FP4.0).
- … support the same set of features as scalable solutions (FP4.0)
- … cannot be listed on the SAP Store
Three development scenarios are supported
- Development in a production tenant before go-live (PRD only): Please note that, the tenant cannot go live as long as at least one solution has status In Development . This option is deprecated as of version 1305!
- Development in a customer test tenant (TST + PRD, by default in the same physical system). This is the default scenario and has two limitations: (1) BC sets for SAP BCOs are not possible, (2) Loss of test data during patch creation. The test tenant can be dismantled after patching and build up again for new patch (“original” of the solution resides in the PRD tenant)
- Development in a partner dev tenant (PDEV + PRD, on different physical systems). Solutions for different customers in one tenant are possible. The partner maintains customer ID for each solution in the development tenant.
The following figure shows the development scenario 2:
Figure: Development Scenario for Customer-Specific Solutions: TST and PRD tenant
The different steps in this scenario are:
- Setup of the test tenant as a copy of the PRD tenant: This includes configuration, master and transaction data
- Custom development in the test tenant: You can develop a custom-specific solution, test it with a copy of PRD data, deploy to PRD tenant via studio and create patch, test and deploy.
- Business configuration in the test tenant: You can maintain business configuration and deploy (“merge back”) to PRD tenant in the Business Configuration work center. Note: You must deploy the custom-specific solution before you can deploy the business configuration to ensure consistency between the TST and PRD tenant.
You can find the documentation on custom-specific solutions in the SAP help portal: https://help.sap.com/studio_cloudhttps://help.sap.com/sdk, SAP Cloud Applications Studio, Complete help: Print version. In the documentation, see section “Lifecycle Management of Customer-Specific Solutions ”.
You can find the procedures for development of custom-specific solutions in the Business Center (authorized user reqired): https://wiki.sme.sap.com/wiki/display/AMI/What+to+know+about+development+of+customer+specific+solutions
Note: By default, write access to SAP business object is disabled. If you want to get this removed, open an incident from your test tenant and SAP will remove the restriction. Unfortunately this is necessary for security and legal reasons.Please check the following business center document for details: https://wiki.sme.sap.com/wiki/display/AMI/What+to+know+about+development+of+customer+specific+solutions
❗ It is important to know that assembly, download, upload and activation can only happen for a consistent solution. This means, all objects must be error-free. Therefore you have to remove all test object, orphaned objects etc., which may be left over from the development. Here are some recommendations:
- To avoid time preasure and project “panic”, keep your solution as consistent as possible during developent:
- Do an “Activate” and “Check” on solution level regularly (depending on your amount of your development work at least once per week)
- Do a “test export” using the “Download as copy” function in the implementation manager (for example one week before your “production” transport). The “copy” function produces a “deep” copy of your solution during assembly.
- To reduce waste in your “main” solution, use a separate solution for “sandbox” coding, for example if you want to test some alternative implementation.
By following these recommendation you can reduce the risk of getting blocked by incidents during the “productive” download/upload.
A solution template is a customer-independent solution that can be imported into customer-specific solutions. You can create all items that you want to reuse in a solution, for example, business objects, UIs, web services (exception: key user content, such as mash-ups). The solution template itself cannot be used in a production tenant, but only the customer-specific solutions derived from it.
- … are not dedicated for one customer.
- … cannot be used productively. They have to be imported into a customer-specific solution before they can be used in a production tenant.
- … can be exported/imported to tenants having the same ByDesign, CustomerOD, … version (or +1).
- … can be copied (“deep copy”), for example for testing, fixing a project milestone, …. (FP4.0).
- … must not contain key user tool content (forms, reports, mashups) and BC sets on SAP BCO. All other content types including translation and BC sets for partner BCO are supported.
Multiple templates can be imported into one customer-specific solution.
A template always has the status In Development. You cannot create a patch of a template.
Import of updated template into customer-specific solution is allowed.
Two development scenarios are supported
- Development in a customer test tenant (TST)
- Development in a partner dev tenant (PDEV)
- Creating a solution template on customers’s production tenant is not supported
You can import the solution template into a customer-specific solution in the same tenant or in test tenants of a different customers.
You can find the documentation on custom-specific solutions in the SAP help portal: https://help.sap.com/sdk, SAP Cloud Developer Studio 1.0, Complete help: Print version. In the documentation, see section “Solution Templates Quick Guide for Customer-Specific Solutions”).
The solution template is a zip that you can store at any place. The content is not encrypted but, the content is protected against modifications outside the studio.
SAP provides some solution templates as how-to guides in the Business Center, Wiki, SAP Business ByDesign Studio, Best Practice for Implementation ( https://wiki.sme.sap.com/wiki/x/UIcqCwhttps://wiki.sme.sap.com/wiki/x/UIcqCw ), section “How-To Guides with Solution Templates” (requires an authorized business center user).
ℹ There have often been misunderstandings about partner dev tenants and test tenants. As it is allowed to develop custom-specific solutions and templates in the test tenant, customers see this from an semantical point of view as the “dev tenant” for the customer/partner. But there are differences:
- Test tenants:
Test tenants are upgraded, ususally together with the production tenant. The custom-specific solutions and templates also undergo the upgrades.
- Partner Dev Tenants:
There is currently no official supported way to upgrade such tenants. The procedure is the partner have to request an dev tenant in release n+1.
Solution templates can simply be assembled in release n and uploaded to n+1.
Custom-specific solutions need to be upgraded within the customer system for which they are build for. After this upgrade they can be assembled from this tenant (even from an production tenant) and uploaded to the partner dev tenant
With release 1302 we will simplify this process. There it will be allowed to install custom-specific solutions solutions which are assembled in 1302 in an release 1305, so that there is no difference to Template solutions
Customer-Specific Solutions and Tenant Isolation
In this section, I will describe the deployment of customer-specific solutions for customers with multiple tenants, for example for a customer that has one production tenant and several test tenants, for example for custom development, testing, migration tests, and so on.
- By default, all tenants of a customer are located in the same physical system.
- Development and patch development (updates) of the customer-specific solution is done in a dedicated tenant. The development version is only visible in this tenant.
- Updates are imported into the production tenant (PRD).
- Additional tenants of the same customer are updated automatically after import of the update into the PRD tenant. In other words there are at maximum 2 versions of the software available in the landscape: one version for update (patch) development (in a dedicated TST tenant) and one version for the PRD tenant and all other tenants. The additional tenants are updated with the latest patch only if the first version is already deployed in those tenants. The deployment of version 1 of the solution into any tenant is to be done explicitely.
Figure: Deployment of a customer-specific solution for a customer with more than two tenants
This is great clarification for those not as obsessed as I am about knowing the current status of ByD.
I like the template concept because it gives me the ability to create an added-value solution in the selling process, without being in the SAP Store that seems to be a total dead zone.
My biggest concern is the Public Solution Model and BO/UI extension. It's insanely tedious to provide all the information required for a PSM request that goes back and forth, with SAP Cloud Support pushing back on every request. And when the request is finally approved, it takes weeks/months to be fulfilled.
In my mind this is the biggest weakness in the context of ByD development. I think SAP should be much more proactive in exposing BO's, and creating stable anchors on all the UI's for extension. Until then, I don't see any groundbreaking solutions being made. The best thing going now is just the ability to fill a customer gap.
I fully agree with Judson regarding the PSM.
But I disagree regarding the template concept...from sales perspective that definitely offers great new possibilities but the SAPStore listening is a pain in my POV. It makes purchasing process for customers more complex, I really enjoy more the direct "Buy now" option.
You're right about the store, but in my mind the store is fairly useless. The buying process is too hard. I haven't even been able to 'buy' my own free solution. I get tons of requests for customer one-offs though, and many are similar, so I really like the template idea.
I agree. Tempates are definitely better to creat customer specific solution as the possibilities there were before.
I agree that the "Buy Now" option is the better option for high volumn sales of Scalable Solutions.
By publishing an Scalable Solution or Solution Template with the "Learn More" option instead of "Buy Now" the customer is directed from the Store to the langing page of the partner. The customer has than the possibility to negotiate the terms with the partner (pricing, addition implementation efforts, customer specific adjustments,...) which gives the customer and partner more fexibility, often asked for from partners.
thanks for the background information on the different solution types. It is really
I told you, that I would repost my question in this section. Currently, I am not able
to log into our own Test Tenant in order to develop a customer specific
solution (only for testing). We created a Change Project out of our Productive
Tenant and ordered a Test Tenant. By logging into the Test Tenant via ByD Studio everytime the message: Function not permitted. Tenant used Productive appears.
I also configured the right URL for this Tenant in the Options Menu. In the whiletime, I am developing on our Partner Development.
Do I need to ask SAP that they configure the Test Tenant for development or did I do any mistakes? It´s not clear for me.
You should be able to connect to ANY test tenant, so yes, you'll have to log an incident with SAP.
I have to log about 5 today which I am dreading.
in a test tenant, you should be able to develop a custom-specific solution. For me this looks like a wront tenant configuration.
thank your for your responses, Thomas and Judson. I will create an incident on the test system. I don´t know if this should be done everytime I want to develop OneOffs on the Customers Tenant or if these tenants are usually preconfigured for this use case.
Another Question: Customer ID for Customer-Specific Solutions. I have contacted the Cloud Support in order to get our Customer ID and described him my use case (ByD Studio OneOff). The support didn´t exactly know which customer ID I want. So he sent me our Partner and CRM ID. Is this the right Customer ID? If not, then where do I have to look? In the technical specification in the help menu of the ByD Tenant I don´t find it.
Ok...I think my problem is solved: I contacted the SAP Helpchannel now...The Customer ID should be the same as the CRM ID.
Thanks for the detailed information. Had a question regarding limitation of the Template Solution that I wanted to confirm with you...
… must not contain key user tool content (forms, reports, mashups) and BC sets on SAP BCO. All other content types including translation and BC sets for partner BCO are supported.
In context of the above line quoted from the article, does UI screen enhancement of an extended BO also come under 'key user tool content'? Our solution requires extending a lower layer BO as we are making modification to a QAF.
When I create a Solution Template, create the xbo, add the extension element and activate, I am not able to see the 'Enhance Screen' option that I see when I do the same steps with a Customer Specific Solution.
Or there something that I am doing wrong with the steps...? I am working with a 1302 SeOD tenant.
you are right. UI change transactions are also not supported in templates yet (although it is not really "key user content"). So you can, extend the BO and develop the ABSL code for the BO extension, but you cannot add the extension fields to the UI in the template. This is mainly because the template and the custom-specific solution is most likely developed in the same tenant, and so the business users would see the custom field from the template and the custom-specific solution under the same name on the SAP UI. (So he will see the same custom field twice, which is very confusing.) We are working on bringing the remaining content types into the template, but for the time being it is a limitation.
So this is not really a viable solution for anyone wishing to make a true deployable add-in with the intent of giving it out to multiple customers... Like a Scaleable Solution was.. One Giant Step Backwards for the BYD Studio Community again...
For me to have to redo all the Screen enhancements / forms/ reports... EVERY time I put this on a New Customers system is kind of a joke.. and a HUGE downfall in the BYD SDK.
Thanks for the feedback Thomas.
So what we are thinking we will do is, create a template solution in TST tenant, writing up the bo, related scripts and an embedded component for the BO. Then export the template and import it into a 2nd TST tenant. Using the imported template, create a Customer Specific solution, where we create the xbo and can enhance screen to add the embedded component created in Template Solution.
To test this scenario out, what I did was just create a BO and a After-modify script, then try to 'Export Template...' from the Studio's File menu. Selected Project option and moved through the screens. At the last step upon clicking Finish, I get a validation message in popup window -
Unable to read an exported file for the following reason: Could not find file 'C:\Users\VNarayan\Documents\CopernicusIsolatedShell\Projects\HJV019\Y643X63KY\TimeRecording_ST-Root.node'.
I checked the folder structure and its correct, and there are other files in the location, but not the one that Studio is complaining about.
Is this a file that I have to create in Studio or there is a step I missed performing that would have auto-generated this file..? (I did activate the project before exporting).
I also tried the 'Item' export option, but same issue.
Can you please help me identify what is it that I could be not doing right here...?
"export template" is a standard function of MS Visual Studio (which has unfortunately a name that leads to confusion here), but this you cannot use here. Please open the Implementation Manager window and from there, use "Assemble and Download" to assemble and download the template.
Then create a custom-specific solution. In the custom-specific solution open the Implementation Manager window and use the "Import Solution Template" function to import the solution template.
You can find the details of the handling in the documentation.
PS: for some reason, I cannot insert a picture in a reply in SCN (icon is greyed out) - does somebody know why?
Thanks again Thomas. Yes, I was able to test our scenario out using the Implementation Manager.
Regarding the 'Insert Image', looks like its been disabled deliberately by design...in the source of the page, all other toolbar item js calls have a 'mceButtonEnabled' property setting, whereas 'Insert Image' has 'mceButtonDisabled'.
As an extension to the above scenario that you helped me with (ie creating a template solution in TST1 and then importing it as a custom-specific solution in TST2 - both TST1 and TST2 on same physical system), I would like to add the custom-specific solution to PROD which is not in the same physical system...
I am thinking that this will be possible as long as the Customer ID is the same value for TST1, TST2 and PROD, correct...?
To test this scenario, I took the custom solution that was completed in TST2 and then tried 'uploading' (Implementation Manager>Current Version>Upload button) it to a 3rd system which is not in the same physical system and does not have the same customer ID either (basically another TST instance). The server message I got was "Upload not allowed. Solution is developed for customer 0000167698".
So, if I had tried the above action in actual PROD which would have the same customer ID, then I would have been able to upload my custom-specific solution there or would it still be prevented from using the custom solution in PROD?
Reason the question came up was, when reading through the Overview table above (Tenant Landscape scenario), under Customer Specific Solution, it mentions that systems should be in the same physical system - 2nd point in the list..
your statement is correct. As long as the customer ID is identical, you can apply it to the PROD tenant, whether it is on the same system or not.
If we need to develop Add-ons, then what should be the solution type? Solution Template has limitations. we can't use Customer Specific as Add-ons are not built for particular customer.
Really confused 😕
We recommend to use a combination:
- the final solution that is delivered to the customer must be a custom-specific solution.
- for the "common parts" use a template.
the space is getting shorter and shorter, so I shall not repeat the advantages and disadvantages here.
we are currently thinking about converting our Scalable Solutions into Solution Templates.
What would be the easiest way to achieve that without having to recreate BOs, UI-Screens, etc.?
Could you even copy the files from the local project folder into a newly created Solution Template-folder?
Thank you and kind regards
we are setting up a migration program to migrate scalables to solution templates. An SAP team will contact all partners and offer support for the migration. We are currently in the pilot phase of this program. We will contact all partners anyway, but if you need the migration early, please send me a mail, I can forward your contact information to the project team.
thank you for your reply.
What would you estimate when that migration tool could be available?
We'd definitely be interested in direct contact to the responible team. Unfortunately, I can't see any E-Mail address of you. Would you be so kind to contact me: firstname.lastname@example.org ?
If a customer has Test Tenant, Data Migration (DM) tenant and PROD tenant, and if the solution developed in test tenant is uploaded in the PROD tenant for the first time, will a copy of the solution is updated in DM tenant automatically?
no, this is not the case. In your situation the sequence is as follows:
- development in TST tenant (solution is not available in PRD & DM)
- initial deployment to PRD (solution is not available in DM)
- create patch in TST (in test solution, PRD is still on old version)
- patch deployment to PRD (patch version is automatically distributed to TST, both are on the same level, solution is not available in DM)
- deployment of patched solution (latest version) in DM - now all 3 tenants are on the same level. From now on, all patches that are applied to PRD are automatically distributed to TST and DM.
Thanks a lot for prompt reply 🙂
We have requested for DM tenant. We were informed that, SAP will copy the PROD tenant and give as DM tenant. In that case, if we have deployed the solution to PROD tenant, while copying, the customer specific solution is also copied?
Can we deploy the solution to DM tenant directly?
In the last line of your previous comment, you meant to say, after the solution is available in all tenant and another patch is created and deployed in PROD tenant, an automatic distribution will happen to other tenants?
Thanks & regards,
when the PRD tenant is copied and the solution is already deployed to PRD, the solution is available in the copy (= DM in your case).
Your second question: yes, exactly.
Can we deploy the solution to DM tenant directly?
Thanks & regards,
no, if a PRD tenant exists in a system, you can deploy to the PRD tenant only - the DM tenant is updated automatically.
Please note that we support a 2-tier "landscape" only. You can have 2 versions of a solution only. The solution in version n+1 in the patch solution in a test tenant, and the solution in version n in the "original" solution. The deployment of a patch is always done in the PRD tenant and it is automatically available in all other tenants (TST, DP, ...).
In your earlier comment, you said that - "deployment of patched solution (latest version) in DM - now all 3 tenants are on the same level." - Is this a manual activity?
In your recent comment, you mentioned that "if a PRD tenant exists in a system, you can deploy to the PRD tenant only - the DM tenant is updated automatically."
I am sorry but I am little confused to grasp the point from both of these points.
Do you mean to say that if there is no solution in DM tenant, we can have it in either of the below ways that...
1) Deploy the patched version manually for the first time and then after all the production patches will be automatically distributed?
2) When production tenant which have the customer specific soln deployed already is copied into DM, soln will be available automatically available in DM and so, there is no need to work on DM tenant in this case as everything will be automated.
I must be mad. Am I making sense? 😀 😀 😀
1) the 3 tenants are automatically in sync. If you deploy to PRD, the DM and the TST is automatically synced
2) As soon as the solution is active in the DM tenants, production patches will be automatically distributed to the DM tenant. There are two ways how the solution can become active in the DM tenant (which is created by tenant copy from the PRD):
- if the solution is already in PRD at the time of copy, it will be also in the DM
- if the solution is not already in PRD at the time of copy, you have to deploy it manually.
I got it.
Thanks a lot Thomas. 🙂
Thanks alot Thomas for your quick replies. 🙂 🙂
Really appreciate it because, it takes more time if I want to get the same info via other sources like Cloud Support team and Partner coach 😛 😛 😛
Compared to Scalable solutions there are lot of limitations with the development possibilities in Template Solutions, for example no possibility for UI enhancements.
Since it may be for the newly proposed "Multi-Customer Installable solutions" to be available and Scalable solutions are already deprecated what is the way forward for creating new solutions targeting multiple customers in the interim ?
If we proceed to create such solutions as Customer-Specific Solution, will there be an option to convert the same to a "Multi-Customer Installable solutions" later on ?
>>>what is the way forward for creating new solutions targeting multiple customers in the
Using one (or more) template(s) for the supported content types and create a Custom Specific Solution for each customer.
>>>will there be an option to convert the same to a "Multi-Customer Installable solutions" later
Actually we do not plan for a substitution of multiple Custom Specific Add-Ons (with identical content) by one Solution (which can be installed multiple). We might think about that, if the amount of customers using an identical solution increases.
Hi Thomas(or anyone else that can help me out ofcourse 🙂 ),
At this time I'm making my first steps in cloud development, more precise development for a Customer OnDemand Solution. We have a development tenant version 1302, and I have got your book SAP Business ByDesign Studio - Application Development.
The first thing that is confusing me are:
Does this mean that there are two development environments for creating solutions, and I can use both for my tenant? If so then I should be able to find SAP Solution OnDemand Studio 1302 and SAP Business ByDesign Studio 1302? Because I can't find the last one on http://service.sap.com.
There is only one development environment but the names differ for the different releases.
The SAP Business ByDesign Studio covers all SAP Business ByDesign releases up to SAP Business ByDesign 4.0.
The SAP Solutions OnDemand Studio is used for all SAP on-demand (cloud) solutions, currently releases 1302 and 1305.
please refer to:
SAP Solutions OnDemand Studio: New Common Name & Build, New Release Numbers, New Features
You can still use the ByDesign Studio book to get started. You can refer also to the following post: SAP Business ByDesign Studio Application Development
In this post I try to summarize the most important updates
Hi Thomas and Henrike,
Thnx for the quick reply, the picture is getting more clear!
A clarification on the point regarding customer specific solution deployments:
The additional tenants are updated with the latest patch only if the first version is already deployed in those tenants. The deployment of version 1 of the solution into any tenant is to be done manually.
Thanks for this clarification. I added this as a note to the main text.
I have uploaded a template solution in a customer specific. working fine. I have moved it to the productive enviorment. now i have created a patch for customer specific solution , Can i uplolad my template solution in patch with new changes in template solution?
Is that any way to transport Customer specific solution to another client tenants, I've developed the solution over customer specific solution on my partner test tenant by mistake.
is that any way to import it to Solution Template !!