<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">

<channel>
	<title>Sunshine Systems SAP E-Sourcing / CLM Blog</title>
	
	<link>http://www.sunshinesys.com</link>
	<description />
	<pubDate>Thu, 30 Apr 2009 00:13:13 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/sunshinesystems" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="sunshinesystems" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">sunshinesystems</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Calling a Web Service from a Script</title>
		<link>http://www.sunshinesys.com/2009/04/29/calling-a-web-service-from-a-script/</link>
		<comments>http://www.sunshinesys.com/2009/04/29/calling-a-web-service-from-a-script/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 23:36:58 +0000</pubDate>
		<dc:creator>rob</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sunshinesys.com/?p=187</guid>
		<description><![CDATA[Hi All - I know it has been quite a while since I have posted&#8230;sorry for that&#8230;work has been keeping me busy  
Recently, I received a question from an E-Sourcing professional asking about calling a Web Service from an E-Sourcing script. This is absolutely something that can be achieved quite easily; and, in fact, [...]]]></description>
			<content:encoded><![CDATA[<p>Hi All - I know it has been quite a while since I have posted&#8230;sorry for that&#8230;work has been keeping me busy <img src='http://www.sunshinesys.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Recently, I received a question from an E-Sourcing professional asking about calling a Web Service from an E-Sourcing script. This is absolutely something that can be achieved quite easily; and, in fact, it is something that I have done for customers in the past.</p>
<p>As with any use of Web Services, however, you should carefully consider the security issues that may come up. How, for example, will the Web Service server validate that the Web Service client (E-Sourcing) is properly authenticated? Will password information be included in the web service call? You will find that it is very easy to make a web service call, but I would encourage you to carefully consider security before implementing a productive solution.</p>
<p>Web service calls can be made using raw Java web service APIs from the open source Axis library which is included with E-Sourcing; this approach is slightly more difficult to code, but very dynamic. Web service calls can also be made using proxies. In one solution that I worked on, we generated java proxies for the web service, compiled those proxies into a Jar file, and included that jar file as a custom jar in E-Sourcing. Let me provide a few more details on each of these approaches.</p>
<p>Using raw java web service APIs that are part of the Service and Call classes, I prototyped a web service call to Googles sample spell checker web service. Here is the code:</p>
<p><span style="font-size: x-small; font-family: Arial;">import org.apache.axis.client.Call;<br />
import org.apache.axis.client.Service;<br />
import org.apache.axis.encoding.XMLType;<br />
import javax.xml.rpc.ParameterMode;<br />
import javax.xml.namespace.QName;</span></p>
<p><span style="font-size: x-small; font-family: Arial;">String endpoint = &#8220;<a href="http://api.google.com/search/beta2">http://api.google.com/search/beta2</a>&#8220;;<br />
Service  service = new Service();        <br />
Call call = (Call) service.createCall();        <br />
call.setTargetEndpointAddress( new java.net.URL(endpoint) );        <br />
call.setOperationName( &#8220;doSpellingSuggestion&#8221; );        <br />
call.setOperationName(new QName(&#8221;urn:GoogleSearch&#8221;, &#8220;doSpellingSuggestion&#8221;));        <br />
call.addParameter(&#8221;key&#8221;, XMLType.XSD_STRING, ParameterMode.IN);        <br />
call.addParameter(&#8221;phrase&#8221;, XMLType.XSD_STRING, ParameterMode.IN);        <br />
call.setReturnType( XMLType.XSD_STRING );        <br />
String ret = (String) call.invoke( new Object[] { &#8220;googlekey&#8221;, doc.getDocumentDescription()} );        <br />
doc.setDocumentDescription(ret);</span></p>
<p><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">This block of code does a very simple thing&#8230;it calls the Google &#8220;doSpellingSuggestions&#8221; web service with two parameters: a key provided by Google, and a string for which the spelling suggestions should be generated. I used the current document description as my sample string for the web service and I put the results back into the document description - remember, this is just showing how you can call the web service, not doing anything really intelligent or useful from a business perspective <img src='http://www.sunshinesys.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </span></p>
<p><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">There is nothing special to E-Sourcing about the above code&#8230;this is really just using the Axis java classes to call a web service.</span></p>
<p><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">The second approach that can be used is to generate Java proxies for the web service calls. The open source Axis library includes a tool called &#8220;wsdl2java&#8221;. Using the WSDL for the web service, you can generate Java proxies. Java classes will be generated by the tool; these Java classes will then need to be compiled and included in E-Sourcing as a custom jar. Once they are part of the E-Sourcing deployment, they can be called like any Java API. If you were to examine the generated code, you would notice that it looks a lot like the raw web service code shown above&#8230;the generated classes really just provide a simpler interface to the same functionality.</span></p>
<p><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Calling web services from a script can offer new possibilities for implementing integrations and other specialized functionality. As I said above, however, managing the security aspects is very important, so it should be done carefully and with thought.</span></p>
<p><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">I hope this article was interesting and helpful.</span></p>
<p><span style="font-size: 10pt; font-family: &quot;Arial&quot;,&quot;sans-serif&quot;; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Good Luck.<br style="mso-special-character: line-break;" /></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinesys.com/2009/04/29/calling-a-web-service-from-a-script/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Large RFx - Continued</title>
		<link>http://www.sunshinesys.com/2009/03/15/large-rfx-continued/</link>
		<comments>http://www.sunshinesys.com/2009/03/15/large-rfx-continued/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 16:38:07 +0000</pubDate>
		<dc:creator>rob</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sunshinesys.com/?p=182</guid>
		<description><![CDATA[Last time, I started writing about a large RFx that I worked on with a customer a few years ago. If you haven&#8217;t read that posting, you should read it first, then come back to this one.
As you know from the first posting, the first part of the RFx process was to have the many [...]]]></description>
			<content:encoded><![CDATA[<p>Last time, I started writing about a large RFx that I worked on with a customer a few years ago. If you haven&#8217;t read <a href="http://www.sunshinesys.com/2009/02/24/large-rfx/" target="_self">that posting</a>, you should read it first, then come back to this one.</p>
<p>As you know from the first posting, the first part of the RFx process was to have the many suppliers agree to the contractual terms and conditions. Once this was accomplished, it was on to collecting the updated &#8220;catalog&#8221; pricing from the suppliers.</p>
<p>We put a lot of thought into the best way to collect the updated pricing. Some of the key requirements for this  process were:</p>
<p>- The products offered by the suppliers varied greatly among the suppliers. This resulted in the <strong>number</strong> of products offered by suppliers varying greatly from one to supplier to the next.</p>
<p>- The number of products offered by suppliers could be as few as just a couple to as many as a couple thousand. We needed a solution that would address both extremes.</p>
<p>- In adition to collecting pricing information from the suppliers, it was also very important for the suppliers to see the detailed specifications about the products. In total, we had about 15 different specifications that we wanted the suppliers to be able to view during the catalog refresh process.</p>
<p>- The pricing that we were collecting from the suppliers was more advanced than a simple unit price. We needed to collect &#8220;tiered&#8221; pricing from the suppliers, but not in the traditional sense of tiers represented by quanities, but &#8220;named&#8221; tiers where the names provided meaning to the suppliers (logically, these named tiers represented &#8220;markets&#8221;)</p>
<p>- We needed the supplier to be able to <em>add</em> line items to the RFx for any new products they sell that should be part of our catalog.</p>
<p>The first approach we considered for the designing the RFx was to use the basic RFx functionality of E-Sourcing, building up an RFx with the superset of line items (all possible products for all suppliers). We discarded this as a viable approach due to the significant variety in what products each supplier would see.</p>
<p>The second approach we considered was using a separate E-Sourcing RFx for each supplier. In many cases, this approach would probably have been quite good: we would have created line items on the RFx for the various products offered by the supplier, used the &#8220;specifications&#8221; capability of E-Sourcing line items to provide the important information out to the supplier, and used the &#8220;attributes&#8221; capability of E-Sourcing to collect the various tiers of pricing. Unfortunately, this method did not adequately address the requirement that we need to have the suppliers provide <em>additions</em> to their catalog for new products they now sell. That is, we needed a way for the supplier to add line items to the RFx for any new products. Based on this limitation and also the fact that managing 250+ separate RFx&#8217;s was a bit concerning, we decided against this approach as well.</p>
<p>The approach that we settled on was a bit unique, but due to the high degree of configurability of E-Sourcing, it was an approach that was easy to implement and deploy. We decided that using Excel for the manipulation of the data by the supplier was the best option. Most suppliers would have experience with Excel and those suppliers that offered large numbers of products (1000s) would feel a lot more comfortable working in Excel to provide the updated pricing. Excel also offered the ability for the supplier to add new products.</p>
<p>Our approach was unique in that we used a standard E-Sourcing data structure to manage the product line items and associated those data structures with E-Sourcing contracts. We then created a separete contract for each supplier (in draft status), published that contract to the supplier, and allowed the supplier to export the pricing in Excel from within the contract. When the supplier was complete with their pricing work, they would upload the Excel spreadsheet, which was then processed by us and re-loaded into the standard E-Sourcing data structure holding the line items. Line items that existed had their prices updated. New line items were appended to the data structure. We built reports over the data structure that allowed us to analyze the product pricing, comparing like products when necessary. Ultimately, this data structure was used in the contract to represent the awareded line items and pricing.</p>
<p>What was really great about the solution we developed is that it used all <strong>standard</strong> functionality of E-Sourcing. It demonstrated the powerful configuration capabilities of E-Sourcing that allowed us to model a unique event in a slightly different way, but without writing a single line of code.</p>
<p>Obviously, there are a lot of finer details about how we put this all together. Nevertheless, I hope this posting has given you some ideas and next time you might &#8220;think outside the box&#8221; when you have an event that has unique attributes that may not align exactly with the standard functionality and use model of E-Sourcing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinesys.com/2009/03/15/large-rfx-continued/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Large RFx</title>
		<link>http://www.sunshinesys.com/2009/02/24/large-rfx/</link>
		<comments>http://www.sunshinesys.com/2009/02/24/large-rfx/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 02:52:19 +0000</pubDate>
		<dc:creator>rob</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sunshinesys.com/?p=172</guid>
		<description><![CDATA[Today, I thought I would start a series of a few posts regarding running a &#8220;large&#8221; RFx in E-Sourcing. A few years ago, I worked with an E-Sourcing customer that used E-Sourcing to solicit bids from around 250 suppliers for a very large number of products. I would actually characterize the objective of the RFx [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I thought I would start a series of a few posts regarding running a &#8220;large&#8221; RFx in E-Sourcing. A few years ago, I worked with an E-Sourcing customer that used E-Sourcing to solicit bids from around 250 suppliers for a very large number of products. I would actually characterize the objective of the RFx as a &#8220;catalog refresh&#8221; - the E-Sourcing customer required pricing updates from all of their suppliers for a number of products. In some cases, the supplier provided just a few products; in other cases, the supplier provided thousands of products.</p>
<p>In addition to requiring price updates from the suppliers, the customer also needed to use E-Sourcing to negotiate updated terms and conditions for their contract.</p>
<p>Overall, this scenario presented a very interesting use-case for E-Sourcing: to negotiate contract terms and conditions and follow that negotiation with solicitation of updated pricing from suppliers.</p>
<p>After much thought and analysis, we decided to structure the &#8220;event&#8221; as follows. We started by creating a basic E-Sourcing RFI. The purpose of the RFI was to negotiate the contract terms and conditions as well as to solicit some other information from the suppliers. The RFI was a very basic RFx in E-Sourcing: it consisted of only a few questions. One of the questions we defined was an &#8220;attachment question&#8221; - the purpose of this question was to have the suppliers upload a red-lined version of the draft contract terms and conditions, which were provided to the supplier as an attachment published by the E-Sourcing customer. This single RFI was published to the 250 suppliers.</p>
<p>Due to the large number suppliers participating in the RFx, we allocated three months to process the results and complete the contract negotiations.</p>
<p>Next week I will write about how we collected the updated pricing from the suppliers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinesys.com/2009/02/24/large-rfx/feed/</wfw:commentRss>
		</item>
		<item>
		<title>E-Sourcing Page Customizations</title>
		<link>http://www.sunshinesys.com/2009/02/15/e-sourcing-page-customizations/</link>
		<comments>http://www.sunshinesys.com/2009/02/15/e-sourcing-page-customizations/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 02:31:37 +0000</pubDate>
		<dc:creator>rob</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sunshinesys.com/?p=159</guid>
		<description><![CDATA[Hi All - I apologize that I missed my posting last week. I am doing my best to write weekly, but it is not always so easy.
In the past couple of weeks, I have spoken to some people about the E-Sourcing / CLM Page Customization feature. This feature allows you to make configurations to the [...]]]></description>
			<content:encoded><![CDATA[<p>Hi All - I apologize that I missed my posting last week. I am doing my best to write weekly, but it is not always so easy.</p>
<p>In the past couple of weeks, I have spoken to some people about the E-Sourcing / CLM <em>Page Customization</em> feature. This feature allows you to make configurations to the user interface in E-Sourcing without changing code. The types of configurations include: hiding fields, making fields required, changing the labels on fields, positioning fields on a page, and making fields not editable.</p>
<p>Page customizations are setup for a business object class or master data class. That is, each of the major business objects (Projects, RFx, Auctions, Master Agreements, etc) in E-Sourcing / CLM will have one page customization object. Each page customization object will consist of <em>overrides</em> that indicate the individual field configurations. For example, to make the <em>Description</em> field required in the <em>Projects</em> module, there will be a single override that specifies the field DOCUMENT_DESCRIPTION will have its <em>required</em> property set to a value of yes.</p>
<p>Each override in the page customization object will specify a single property for the field, so there could be many overrides for a single field. Unfortunately, the system does not perform many validations when the overrides are setup, so the specification of the field id must be done correctly; additionally, the system allow the same override to be specified for the same field multiple times. At run-time, however, the first one in the list of the overrides is the one that will be applied.</p>
<p>When page customization overrides are used as described above, they will apply to all instances of the business object class (e.g., all projects in the system would have the description being required). In many cases, however, there are requirements to <em>conditionally </em>implement page customization overrides. That is, the requirement might be that the description should only be required when the project is a specific type.</p>
<p>Conditional page customization overrides are available in E-Sourcing / CLM through additional fields on the page customization override. The fields are referred to as the <em>dimension</em> fields and they logically work as follows:</p>
<p>If the dimension field specified has the value as specified in the dimension field value then apply the override, otherwise, the override is ignored.</p>
<p>Following through with the example described above, if the description should only be required for Projects of a specific type (e.g., Category Project), then the dimension fields would be set as follows:</p>
<p>Dimension Field: DOC_TYPE</p>
<p>Dimension Field Type: Project Type</p>
<p>DImension Field Value: Category Project</p>
<p>Page customization overrides that are implemented with dimensions provide a lot of configurability in E-Sourcing and CLM. There are two important considerations that must be taken into account when implementing overrides using dimensions. The first consideration is that page customization overrides are applied when a document is entered and not applied again until the document is re-entered. This means that clicking save on the document will <strong>not</strong> re-apply the page customizations. I point this out because a common question I have heard is: could the page customization override dimension field be a value list value field and when the user changes the value in the drop down, could another field be hidden or made required. Unfortunately, this will not work well because changing the value list value will not refresh the page customization overrides. The second consideration is in the way the system process page customization overrides. They are processed in the order that the exist in the page customization object and as soon as an override is &#8220;found&#8221; for a particular field and property, it is applied. This means that the dimension field overrides <strong>must</strong> precede the non-dimensioned overrides so that they will be applied correctly.</p>
<p>An exmple of the above may be necessary to ensure it is clear. Suppose that the system has ten Project Types configured and there is an extension field named <em>IT Project Type</em> that only applies to projects that are of type <em>IT Project</em>. The requirement might be that the extension field should only be visible on the IT Project Types. This would be accomplished with two page customization overrides on the Project module: the first override would indicate that the IT Project Type field has the hidden property set to no when dimension field DOC_TYPE is set to IT Project Type. The second override would indicate that the IT Project Type field has the hidden property set to yes (no dimensions are required here). These two overrides would implement the requirement stated above.</p>
<p>As I mentioned above, page customizations are a very nice feature of E-Sourcing / CLM. They provide for a lot of powerful configurations to be made, yet require careful setup to ensure proper operation.</p>
<p>In a future posting, I will describe how scripting and hidden extension fields can help you do even more with page customizations.</p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinesys.com/2009/02/15/e-sourcing-page-customizations/feed/</wfw:commentRss>
		</item>
		<item>
		<title>User Defined Business Objects</title>
		<link>http://www.sunshinesys.com/2009/02/03/user-defined-business-objects/</link>
		<comments>http://www.sunshinesys.com/2009/02/03/user-defined-business-objects/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 13:38:55 +0000</pubDate>
		<dc:creator>rob</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sunshinesys.com/?p=151</guid>
		<description><![CDATA[SAP E-Sourcing / CLM is well known for its flexibility and configuration capabilities. Examples of this flexibility include the ease with which new fields can be added to the system and the ability to configure the user interface with different field labels and layouts. There is another fantastic feature of E-Sourcing that many customers use [...]]]></description>
			<content:encoded><![CDATA[<p>SAP E-Sourcing / CLM is well known for its flexibility and configuration capabilities. Examples of this flexibility include the ease with which new fields can be added to the system and the ability to configure the user interface with different field labels and layouts. There is another fantastic feature of E-Sourcing that many customers use to advance their use of E-Sourcing: User Defined Business Objects.</p>
<p>User Defined Business Objects (UDOs) allow system administrators to configure an entirely new business object. They include all of the major features of E-Sourcing business documents including the document type / template creation model, configurable phase definitions, workflow, and user collaboration. Customers have found many uses for user defined business objects, but the two most common that I have seen are: a repository for non-disclosure agreements and a sourcing request (a way to capture request for sourcing from business users).</p>
<p>A base installation and setup of E-Sourcing does not come with UDOs enabled. UDOs are enabled via system properties that are set by the system user. There is a single property that turns them on and separate system properties that enable each of the five configurable UDOs. There are system properties for both purchaser side and supplier side enablement (UDOs are able to be seen by suppliers in addition to buyers if the requirements dictate such).</p>
<p><div id="attachment_153" class="wp-caption alignnone" style="width: 310px"><a href="http://www.sunshinesys.com/blog/wp-content/uploads/2009/02/system-properties.gif"><img class="size-medium wp-image-153" title="system-properties" src="http://www.sunshinesys.com/blog/wp-content/uploads/2009/02/system-properties-300x71.gif" alt="System Properties to enable UDOs (click to enlarge)" width="300" height="71" /></a><p class="wp-caption-text">System Properties to enable UDOs (click to enlarge)</p></div></p>
<p>Once the system properties are enabled, UDOs are available for use in the system. However, E-Sourcing does not come with any security profiles that provide access to the UDOs; as a result, adjustments to the relevant security profiles are required to provide the appropriate access to the UDOs and the associated setup objects (document types and configurable phase definitions).</p>
<p><div id="attachment_154" class="wp-caption alignnone" style="width: 310px"><a href="http://www.sunshinesys.com/blog/wp-content/uploads/2009/02/security-profile.gif"><img class="size-medium wp-image-154" title="security-profile" src="http://www.sunshinesys.com/blog/wp-content/uploads/2009/02/security-profile-300x113.gif" alt="Security Profile configuration for UDOs (click to enlarge)" width="300" height="113" /></a><p class="wp-caption-text">Security Profile configuration for UDOs (click to enlarge)</p></div></p>
<p>With the system properties set and the security profile settings established, a new navigation menu option will exist for UDOs. In the following image, only one of the five UDOs is enabled, but it does show how the common business document functionality is immediately available for the UDO:</p>
<p><div id="attachment_155" class="wp-caption alignnone" style="width: 310px"><a href="http://www.sunshinesys.com/blog/wp-content/uploads/2009/02/menu-bar-with-udos.gif"><img class="size-medium wp-image-155" title="menu-bar-with-udos" src="http://www.sunshinesys.com/blog/wp-content/uploads/2009/02/menu-bar-with-udos-300x56.gif" alt="Navigation Bar with UDO 1 Enabled (click to enlarge)" width="300" height="56" /></a><p class="wp-caption-text">Navigation Bar with UDO 1 Enabled (click to enlarge)</p></div></p>
<p>E-Sourcing provides a basic set of tabs and data that can be used on a UDO. Obviously, the real power is achieved by adjusting the layout through page customizations and adding new fields via extension definitions. Also, for UDOs, it is important to update the localized resources so that terms such as &#8221;User Defined BizDoc&#8221; are changed to the appropriate term based on the configuration.</p>
<p><div id="attachment_156" class="wp-caption alignnone" style="width: 310px"><a href="http://www.sunshinesys.com/blog/wp-content/uploads/2009/02/default-udo.gif"><img class="size-medium wp-image-156" title="default-udo" src="http://www.sunshinesys.com/blog/wp-content/uploads/2009/02/default-udo-300x298.gif" alt="Default Configuration of a UDO (click to enlarge)" width="300" height="298" /></a><p class="wp-caption-text">Default Configuration of a UDO (click to enlarge)</p></div></p>
<p>As you can see, there is a lot of functionality provided by the system without any configuration. However, the real power of UDOs is achieved through the inherent E-Sourcing flexibility that enables custom fields and user interface adjustments using the extension definition and page customization capabilities in setup.</p>
<p>To review, the key things to do when adding UDO functionality to an implementation are:</p>
<p>- Enable UDOs using system properties</p>
<p>- Update the appropriate security profiles with the necessary access rights</p>
<p>- Update the appropriate localized resources to reflect the true use of the UDO</p>
<p>- Add the necessary extensions and page customizations for the business functionality required</p>
<p>- Create the appropriate Document Types</p>
<p>- Create the appropriate Phase Configurations</p>
<p>- Add Workflow (if required)</p>
<p>In a future posting, I will look at a real  UDO example. In the mean time, I hope you found this information useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinesys.com/2009/02/03/user-defined-business-objects/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bookmarking Reports - Are you using this feature?</title>
		<link>http://www.sunshinesys.com/2009/01/25/bookmarking-reports-are-you-using-this-feature/</link>
		<comments>http://www.sunshinesys.com/2009/01/25/bookmarking-reports-are-you-using-this-feature/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 19:13:40 +0000</pubDate>
		<dc:creator>rob</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sunshinesys.com/?p=141</guid>
		<description><![CDATA[In working with customers, I think one of the more under utilized features of E-Sourcing / CLM that can really add value and simplify users&#8217; use of the system is bookmarked reports.
For those that don&#8217;t know about bookmarking reports in  E-Sourcing / CLM, let me explain the feature. All E-Sourcing / CLM reports can be [...]]]></description>
			<content:encoded><![CDATA[<p>In working with customers, I think one of the more under utilized features of E-Sourcing / CLM that can really add value and simplify users&#8217; use of the system is <strong>bookmarked reports</strong>.</p>
<p>For those that don&#8217;t know about bookmarking reports in  E-Sourcing / CLM, let me explain the feature. All E-Sourcing / CLM reports can be bookmarked. Check out this screen shot that shows the <em>toolbar</em> that is displayed with a report when it is executed; notice the <em>Bookmark Report</em> option:</p>
<p><div id="attachment_142" class="wp-caption alignnone" style="width: 310px"><a href="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/report-toolbar.gif"><img class="size-medium wp-image-142" title="report-toolbar" src="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/report-toolbar-300x38.gif" alt="Report toolbar with Bookmark option (click to enlarge)" width="300" height="38" /></a><p class="wp-caption-text">Report toolbar with Bookmark option (click to enlarge)</p></div></p>
<p>When a report is bookmarked using the button above, the user provides a name that will be saved for their use only. The system will save the name entered by the user and the filter parameters used for that execution of the report and make it available via an area on the <em>Analysis</em> page:</p>
<p><div id="attachment_143" class="wp-caption alignnone" style="width: 310px"><a href="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/bookmarks.gif"><img class="size-medium wp-image-143" title="bookmarks" src="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/bookmarks-300x50.gif" alt="My Bookmarks - Available from Analysis page (click to enlarge)" width="300" height="50" /></a><p class="wp-caption-text">My Bookmarks - Available from Analysis page (click to enlarge)</p></div></p>
<p>As you can see, I have already setup five bookmarked reports. For me, the value in this functionality is the ability of the system to save the filter parameters I entered and to enable very easy access to the report from the <em>Analysis</em> page. Lets say, for example, that there is report that has filters for <em>Organization Unit</em> and some dates. Lets also say that I need to run this report once a week for the current quarter and a specific organizational unit. The first time I run the report for the quarter, I would bookmark it and those settings would be saved. Now, each time I need to run the report, I just run it from the bookmarks and those filter parameters will be populated with the report and it will execute using them.</p>
<p>Bookmarked reports can also be deleted. In my previous example, I would probably do that at the beginning of each quarter when I setup a new bookmark for that quarter. In the screen shot above, there is an <em>edit</em> button in the Bookmark heading - using that button provides me with a screen that I can use to delete unused bookmarks.</p>
<p>So, what do you think? Would using this feature help out your users? I suggest giving it a try.</p>
<p>A few weeks back, I posted about cleaning up the workbench page (<a href="http://www.sunshinesys.com/2008/12/12/could-the-e-sourcing-clm-workbench-be-more-useful/">Could the E-Sourcing / CLM Workbench be more useful?</a>). One of the ideas I put in that post was to extend the capabilities of bookmarks by making a workbench page channel with access to bookmarks. This would really further extend the value of the bookmarked reports so that users have one-click access to their important reports right from their workbench.</p>
<p>That&#8217;s it for this week&#8217;s post. I hope this was helpful and that you consider using report bookmarking in your implementation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinesys.com/2009/01/25/bookmarking-reports-are-you-using-this-feature/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Contract Clause Approval</title>
		<link>http://www.sunshinesys.com/2009/01/19/contract-clause-approval/</link>
		<comments>http://www.sunshinesys.com/2009/01/19/contract-clause-approval/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 15:14:38 +0000</pubDate>
		<dc:creator>rob</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sunshinesys.com/?p=137</guid>
		<description><![CDATA[Recently, I have spoken to a few people about implementing approval logic for CLM Contract Clauses. For those of you that are familiar with CLM, you know that it does not provide an &#8220;out of the box&#8221; capability to enforce clause approvals.
Not to worry, however, because the flexible E-Sourcing / CLM scripting capabilities make implementing [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I have spoken to a few people about implementing approval logic for CLM Contract Clauses. For those of you that are familiar with CLM, you know that it does not provide an &#8220;out of the box&#8221; capability to enforce clause approvals.</p>
<p>Not to worry, however, because the flexible E-Sourcing / CLM scripting capabilities make implementing approval logic for clauses pretty straightforward. In this post, I will describe one approach that I put together for a recent sales demonstration.</p>
<p>The components of my clause approval configuration were:</p>
<p>- Created an <em>extension </em>(custom field) on the clause master data object that was a reference to the user group that is required to approve the clause</p>
<p>- Using <em>page customizations</em>, the approver extension field on the clause master data was made read only</p>
<p>- Using <em>script definition</em>, the approver extension field was populated with the name of the user group that is required to approve the clause. In many organizations, this would be some set of people from the procurement legal department.</p>
<p>The above three configurations provided the framework for the approval process by defining the approver on the clause master data.</p>
<p>In addition to the above configurations, one additional <em>script definition</em> was required. That script definition was implemented as a <em>Field Data Edit</em> script on the <em>PHASE</em> field of clauses. The script included two sets of logic:</p>
<p>- The first logic was based on the phase being changed to <em>Approved</em>. If the new phase was set to Approved and the user performing the change was a member of the approver user group, it was allowed; if the user was not a member of the approver user group, an error was generated and the phase change was not permitted. This logic ensured that only members of the approver user group approved the clause.</p>
<p>- The second logic was to send an email to the legal user group when the new phase of the clause was <em>Review</em>. This ensured that the members of the legal approval group received notification when there was a clause to approve.</p>
<p>So, what do you think? I understand that this is not using the E-Sourcing / CLM workflow approval capabilities, but is it good enough? Would this level of approval work for you? Based on what I have seen with customers, this approach would be more than suitable, but I would love to hear your feedback.</p>
<p>Overall, implementation of a solution like the above should not take more than a few days to prepare, configure, code, test, and deploy. For me, that is very exciting because it demonstrates the real power of the E-Sourcing / CLM capabilities such as extensions, page customizations, and scripting.</p>
<p>Thanks for stopping by and reading my latest post.</p>
<p>Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinesys.com/2009/01/19/contract-clause-approval/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Security Profiles</title>
		<link>http://www.sunshinesys.com/2009/01/11/security-profiles/</link>
		<comments>http://www.sunshinesys.com/2009/01/11/security-profiles/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 19:03:33 +0000</pubDate>
		<dc:creator>rob</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sunshinesys.com/?p=127</guid>
		<description><![CDATA[Greetings all&#8230;
I thought today I would post about E-Sourcing / CLM Security Profiles. I have seen some questions on the SAP SDN about these recently and thought it would be a good topic to cover here.
Security Profiles are used in E-Sourcing to establish user roles and the permissions associated with those roles. Once setup, user [...]]]></description>
			<content:encoded><![CDATA[<p>Greetings all&#8230;</p>
<p>I thought today I would post about E-Sourcing / CLM <em>Security Profiles</em>. I have seen some questions on the SAP SDN about these recently and thought it would be a good topic to cover here.</p>
<p>Security Profiles are used in E-Sourcing to establish user roles and the permissions associated with those roles. Once setup, user accounts are associated with one or more security profiles which will result in the specific permissions the user has in E-Sourcing / CLM.</p>
<p>The permissions that are setup in the security profile include typical sorts of permissions such as <em>Create, Edit, </em>and <em>View</em>; there are also some specialized permissions that are available that are unique to the business object, configuration data, or master data. One of those permissions that resulted in a recent discussion is the permission called <em>setup</em>. This permission indicates whether or not the data can be managed via the E-Sourcing / CLM setup area. There are also permissions such as <em>Create Template </em>that are available on the major business objects (e.g., Projects, Auctions, RFx, and Master Agreements) that restrict access to the template creation functionality.</p>
<p>As with much of E-Sourcing / CLM there is a lot of flexibility built into the security profiles and how they are configured and associated with user accounts. Sometimes, however, this flexibility can lead to inconsistencies in the use and longer term maintenance headaches. When deciding how best to configure the security profiles in E-Sourcing / CLM, I suggest you really examine your organization and the roles in it. Here are some things to understand and establish before performing any configuration in the system:</p>
<p>What are the various roles of the members of my sourcing organization? Do these roles align with job titles or job descriptions?</p>
<p>Are the roles of the members of my organization strictly defined? Should the system be deployed with that strict definition?</p>
<p>How do the roles that the users have align with the functionality that will be used in E-Sourcing? For example, will only certain roles create and manage Projects? Contracts? RFxs? Auctions?</p>
<p>How much and how often will users&#8217; roles change?</p>
<p>Could a matrix be created that lists the roles of the users and the functionality that those users will have access to in E-Sourcing / CLM?</p>
<p>Answering these questions will hopefully lead you down a path to a particular configuration approach. Here are a couple of approaches I have used in the past:</p>
<p>Create Security Profiles that align with job titles / job descriptions: With this approach, each job function in your organization has a related security profile in E-Sourcing / CLM. Each user is then assigned the security profile on the user account maintenance. If a user changes roles or leaves the organization the user account can be updated accordingly. If a user has multiple roles in the organization, they can be assigned multiple security profiles.</p>
<p>Create Security Profiles that define rights from a system standpoint and create user groups that associate the security profiles with roles: With this approach, security profiles might be defined based on use of the various modules (e.g., Projects, RFxs, etc). Instead of assigning the security profiles to individual user accounts, profiles are assigned to user groups and users are associated with one or more groups. In this approach, the group will likely align with the job functions.</p>
<p>Both of the above approaches can work well and your choice really will depend on how you want to maintain user accounts, security profiles, and your use of user groups. Regardless of the approach you select, the system provides a good audit report that shows how the security profiles are used. You can access this report from: Setup &gt; System Administration &gt; Administrative Reports &gt; Security Profile Usage Summary.</p>
<p>I hope this article was interesting and you are inspired to review your use of security profiles and their setup in E-Sourcing / CLM.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinesys.com/2009/01/11/security-profiles/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using Excel Templates for Report Formatting</title>
		<link>http://www.sunshinesys.com/2009/01/02/using-excel-templates-for-report-formatting/</link>
		<comments>http://www.sunshinesys.com/2009/01/02/using-excel-templates-for-report-formatting/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 19:54:07 +0000</pubDate>
		<dc:creator>rob</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sunshinesys.com/?p=110</guid>
		<description><![CDATA[From my earlier posts, you know that I really like using the E-Sourcing / CLM reporting tool. It was actually the very first thing that I did with E-Sourcing when I started working with the application over 5 years ago.
A couple years ago, SAP added the ability to export the report results to a pre-formatted [...]]]></description>
			<content:encoded><![CDATA[<p>From my earlier posts, you know that I really like using the E-Sourcing / CLM reporting tool. It was actually the very first thing that I did with E-Sourcing when I started working with the application over 5 years ago.</p>
<p>A couple years ago, SAP added the ability to export the report results to a pre-formatted Excel spreadsheet. The Excel spreadsheet can include formatting, formulas, and even visual basic macros.</p>
<p>Due to the fact that the E-Sourcing / CLM reporting tool provides only very basic formatting, the Excel template functionality is quite useful for those reports that really benefit from formatting. Recently, for example, I worked on a report for a customer that had multiple queries in it to generate the result sets. We decided to use the Excel template functionality to take the results from the queries and format the data into a easily presentable single Excel worksheet. This was particularly useful because the report users were only casual users of E-Sourcing / CLM and much preferred to review and analyze the data in Excel.</p>
<p>If you are new to this functionality, I suggest starting with something very basic: change the column header and row data formatting in the template. This is done by performing the following steps (assuming you have already developed the query):</p>
<ol>
<li>Create the Excel template. The template can be either an XLT (true Excel template) or XLS (an Excel worksheet). The Excel template should have one worksheet and the name of that worksheet should be the name of the query (not the internal name, but the internationalized display name). In the single sheet, you can apply formatting for the column headings and rows (search in the online help for &#8220;workbook templates&#8221; to see some shortcuts you can use in the template for the formatting).</li>
<li>Create an E-Sourcing / CLM <em>File Attachment Container</em> with the Excel template. In the create screen of the file attachment container, the <em>purpose</em> should be set to <em>workbook template</em>. The path name should be the name of the file and you should upload the Excel template file into the <em>file attachment</em>.</li>
<li>In the E-Sourcing / CLM report, set the <em>workbook template</em> to the file attachment container created in the previous step.</li>
</ol>
<p>These steps will always be followed when you want to use Excel templates for reports. The real work will always be in creating, adjusting, and testing the Excel template.</p>
<p>A more advanced type of Excel template is to manipulate and/or format the raw data from the E-Sourcing / CLM report in a separate worksheet in the Excel template. This type of template is particularly useful where you would like to take data from multiple queries and format it onto a single worksheet.</p>
<p>To create the Excel template that formats raw data from multiple queries, you must do the following:</p>
<ol>
<li>Create worksheets in the template, one for each of the queries in the report and name the sheets the same name as the queries. These should be in the same order as the queries in the report.</li>
<li>Create a new worksheet in the Excel template as the last sheet. You can use formulas in this sheet to &#8220;pull&#8221; data from any of the other sheets. There are different techniques you can use in Excel to accomplish; I typically will type &#8220;=&#8221; in the cell where I want the value, then click to the source sheet and select the source cell. The resulting value of the cell will be something like =Sheet1!a1.</li>
</ol>
<p>For the posting, I created a simple query called <em>Project Portfolio</em>. The query pulls data from the E-Sourcing / CLM projects. I created an Excel template for the report to format the results into something more visually appelling and easy to print. First, I created the Excel template with 2 sheets:</p>
<p><div id="attachment_117" class="wp-caption alignnone" style="width: 310px"><a href="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/two-sheets.gif"><img class="size-medium wp-image-117" title="two-sheets" src="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/two-sheets-300x24.gif" alt="Two Excel Worksheets (click to enlarge)" width="300" height="24" /></a><p class="wp-caption-text">Two Excel Worksheets (click to enlarge)</p></div></p>
<p>The first sheet (Project Portfolio) is the name of the query that I created. There is nothing special in this sheet. The second sheet (Project Portfolio Report), which has the focus when I save the workbook, includes the desired formatting and &#8220;pulls&#8221; the data from the Project Portfolio sheet. The first image shows the formatting I wanted:</p>
<p><div id="attachment_118" class="wp-caption alignnone" style="width: 310px"><a href="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/portfolio-sheet-formatting.gif"><img class="size-medium wp-image-118" title="portfolio-sheet-formatting" src="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/portfolio-sheet-formatting-300x209.gif" alt="Formatted Sheet (click to enlarge)" width="300" height="209" /></a><p class="wp-caption-text">Formatted Sheet (click to enlarge)</p></div></p>
<p>For each project that is part of my results set, I wanted three rows of display data. Each gray bar in the Excel template will be used to show a different project. The way this is done is by pulling the data from the source Project Portfolio worksheet. For example, the formula used in the first gray bar, first column is as follows:</p>
<p><div id="attachment_119" class="wp-caption alignnone" style="width: 310px"><a href="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/a3-formula.gif"><img class="size-medium wp-image-119" title="a3-formula" src="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/a3-formula-300x139.gif" alt="Formula for pulling data (click to enlarge)" width="300" height="139" /></a><p class="wp-caption-text">Formula for pulling data (click to enlarge)</p></div></p>
<p>Notice that the formula for cell A3 has a formula in it to pull data from the first sheet in the Excel workbook. This technique allows me to take the rows of raw data from the generated sheet and reformat them into the block style on my template sheet. The next two images show the raw data and the formatted sheet.</p>
<p><div id="attachment_120" class="wp-caption alignnone" style="width: 310px"><a href="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/raw-data-sheet.gif"><img class="size-medium wp-image-120" title="raw-data-sheet" src="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/raw-data-sheet-300x52.gif" alt="Raw Data Project Portfolio Sheet (click to enlarge)" width="300" height="52" /></a><p class="wp-caption-text">Raw Data Project Portfolio Sheet (click to enlarge)</p></div></p>
<p><div id="attachment_121" class="wp-caption alignnone" style="width: 310px"><a href="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/formatted-sheet.gif"><img class="size-medium wp-image-121" title="formatted-sheet" src="http://www.sunshinesys.com/blog/wp-content/uploads/2009/01/formatted-sheet-300x160.gif" alt="Formated Project Portfolio Sheet (click to enlarge)" width="300" height="160" /></a><p class="wp-caption-text">Formated Project Portfolio Sheet (click to enlarge)</p></div></p>
<p>This example shows how you can use simple Excel formulas to create visually appealing Excel exports for E-Sourcing / CLM report data.</p>
<p>Due to the fact that most capabilities of Excel are supported through the use of templates, complex formatting, logic, and adjustments can also be implemented using Excel Visual Basic macros. In the past, I have used such approach to dynamically create pivot tables in the Excel workbook using the raw data from the query as the source data for the pivot table. You can do some really exciting things if you want to invest the effort in programming Excel. One thing to keep in mind, however, is that once macros are included in the Excel template, Excel&#8217;s security comes into play - in certain cases, the users may not have the ability to execute the macros. You should review this topic with your IT staff before pursuing a complex Excel template of this sort.</p>
<p>Please let me know what you think about this posting and whether you would like more details about the use of Excel templates with E-Sourcing / CLM reports. I hope it helped you understand the capabilities and perhaps inspired you to try them out. Good luck and Happy New Year.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinesys.com/2009/01/02/using-excel-templates-for-report-formatting/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Managing changes</title>
		<link>http://www.sunshinesys.com/2008/12/21/managing-changes/</link>
		<comments>http://www.sunshinesys.com/2008/12/21/managing-changes/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 02:42:07 +0000</pubDate>
		<dc:creator>rob</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sunshinesys.com/?p=102</guid>
		<description><![CDATA[A good friend of mine thought I should post some thoughts about best practices; after giving it some thought, I figured I would write a little about managing configuration changes in E-Sourcing and CLM.
Many of you probably know that E-Sourcing provides options when it comes to making configuration changes and applying them to development, staging, [...]]]></description>
			<content:encoded><![CDATA[<p>A good friend of mine thought I should post some thoughts about best practices; after giving it some thought, I figured I would write a little about managing configuration changes in E-Sourcing and CLM.</p>
<p>Many of you probably know that E-Sourcing provides options when it comes to making configuration changes and applying them to development, staging, and production instances. Some people choose to make the configurations using the XLS workbook capabilities, while others make the majority of the changes via the user interface. In either case, it is still important to consider how these changes should be moved to other instances of the application.</p>
<p>Some customers I work with are particularly rigorous about ensuring all changes are made in a development system, tested in a staging system, and carefully migrated to the production system. At the other end of the spectrum, I have also seen some customers be more aggressive and make configuration changes directly in the production instance. Where are you in this spectrum? Has your process worked well for you?</p>
<p>When I work with customers, I tend to prefer the more rigorous approach to change management. I think it is important that configuration changes are thoroughly tested and validated. I like this to be done in the development system, then migrated to the production system at the appropriate time - I think an evening or weekend is best to allow for further validation testing in those systems.</p>
<p>Unfortunately, applying this rigor really requires careful coordination, particularly if multiple people are working on the changes. E-Sourcing does not provide the necessary tools to easily identify &#8220;what has changed&#8221; and &#8220;has it been migrated to production&#8221;. As a result, those people making the changes need to carefully record each of the changes (I usually create a spreadsheet enumerating each change) and then create an <em>export</em> with those items. When done carefully and diligently, this works really well. It also helps set the next person making changes up for success - that person doesn&#8217;t need to figure out which system has the correct set of configurations; they can follow the same process.</p>
<p>Regardless of whether you choose to make your changes using an XLS workbook or via the E-Sourcing user interface, I would encourage you to use the E-Sourcing <em>export data </em>and <em>import data</em> tools as your means to move changes from a development system to a staging and/or production system. These tools are available in the setup area and can be configured to export only specific data elements.</p>
<p>In reality, this topic could have a small book written on it. Nevertheless, I hope it has made you think about how you manage changes and ensure your systems are configured consistently. Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunshinesys.com/2008/12/21/managing-changes/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
