<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>Oracle Warehouse Builder (OWB) Weblog</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/" />
   <link rel="self" type="application/atom+xml" href="http://blogs.oracle.com/warehousebuilder/xml/rss.xml" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26</id>
   <updated>2008-09-27T16:35:37Z</updated>
   <subtitle>News, resources and comment about Oracle&apos;s ETL, Data Quality and Data Integration solution</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type Enterprise 1.52-en-voltron-r47459-20070213</generator>

<entry>
   <title>Piocon Technologies Wins Partner of the Year Award with OWB at OpenWorld</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/09/piocon_technologies_wins_partner_of_the_year_award_with_owb_at_openworld.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.7837</id>
   
   <published>2008-09-27T16:26:59Z</published>
   <updated>2008-09-27T16:35:37Z</updated>
   
   <summary>The press release speaks for itself, for the most part. But the savings that must be associated with virtually eliminating unplanned downtime for an oil refinery must be hard to even calculate, given the current energy market. I&apos;d love to...</summary>
   <author>
      <name>antonio romero</name>
      <uri>http://www.oracle.com/technology/products/warehouse</uri>
   </author>
         <category term="Press" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>The<a href="http://www.piocon.com/the_news/news_and_events/piocon_wins_oracle_titan_award_for_business_intelligence_solution/"> press release </a>speaks for itself, for the most part. But the savings that must be associated with virtually eliminating unplanned downtime for an oil refinery must be hard to even calculate, given the current energy market. I'd love to see an ROI figure.</p>

<blockquote>Piocon Wins Oracle Partner of the Year Award for Business Intelligence Solution
Piocon was presented with Oracle PartnerNetwork's prestigious Titan Award for a second consecutive year. 

<p>Oracle OpenWorld, San Francisco, CA (PRWEB) September 22, 2008 -- Piocon Technologies, Inc. was honored as one of the recipients of the fifth annual Oracle North America Titan Awards, at a ceremony held Sunday evening at the San Francisco Marriott at Oracle OpenWorld. This award, presented on behalf of the Oracle PartnerNetwork, recognizes Piocon's success in developing and implementing Business Intelligence Solutions based on the Oracle database and Business Intelligence technology. </p>

<p>Piocon's award winning solution provided their oil-and-gas industry customer with Reliability metrics and reporting on more than 100,000 pieces of equipment to hundreds of operations throughout a large refinery. At the time this nomination was submitted, the customer had experienced no unplanned shutdowns due to reliability-related incidents since the system's go-live date, a time span more than 6 times this refinery's historical average and 3 times the previous record. </blockquote></p>]]>
      <![CDATA[<blockquote>
 Delivering a data warehouse and full-scale BI system that included Oracle Warehouse Builder, Application Server, Application Express, BI Publisher, and Portal, Piocon's solution has been a cornerstone in helping the customer meet and exceed their Reliability goals. On-going additions to this solution include the introduction of numerous additional reports and interactive dashboards using the Oracle Business Intelligence Enterprise Edition (OBIEE) Plus suite. 

<p>"Piocon's accomplishment in winning Oracle PartnerNetwork's prestigious Titan Award in the highly contested Business Intelligence Solution category is testimony to their excellence and experience delivering critical, high-value Business Intelligence solutions," said John Gray, Group Vice President, North America Technology Channel Sales. "With this, their second consecutive Titan Award, Piocon proves their consistency, and shows why our joint customers continue to rely upon them as a trusted Oracle partner."</p>

<p>About Piocon:<br />
Piocon Technologies, a member of Oracle PartnerNetwork, is a professional services firm focused on delivering Business Intelligence, Fusion Middleware and Database solutions to a wide range of industries. Deploying business solutions since the company's inception in 1993, Piocon delivers value by providing the information, processes and applications our customers need to drive more accurate and efficient decision making throughout the enterprise. Piocon is pleased to celebrate its 15th Anniversary with this prestigious Titan Award for Business Intelligence. For more information, visit: http://www.piocon.com </blockquote></p>]]>
   </content>
</entry>
<entry>
   <title>OWB Team Receives an Honored Guest</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/09/owb_team_receives_an_honored_guest.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.7836</id>
   
   <published>2008-09-27T07:43:14Z</published>
   <updated>2008-09-27T07:58:01Z</updated>
   
   <summary>I&apos;d thought to do a post on DQ in MDM scenarios today, but ultimately time didn&apos;t permit... What got in the way, so to speak? An Oracle HQ visit from DW/data integration cognoscento Mark Rittman. Mark came by HQ to...</summary>
   <author>
      <name>antonio romero</name>
      <uri>http://www.oracle.com/technology/products/warehouse</uri>
   </author>
         <category term="Events" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>I'd thought to do a post on DQ in MDM scenarios today, but ultimately time didn't permit... What got in the way, so to speak? <a href="http://www.rittmanmead.com/2008/09/27/a-trip-to-redwood-shores/">An Oracle HQ visit </a>from DW/data integration <em>cognoscento</em> <a href="http://www.rittmanmead.com/">Mark Rittman</a>.</p>

<p>Mark came by HQ to share some thoughts on OWB with our management. Some, like myself, have had the good fortune to meet Mark before. For others, this was a first meeting, but an interesting and enjoyable one. We hope to see Mark at HQ again sometime soon. </p>

<p>More on OWB DQ and MDM (the main subjects of my OpenWorld talk) in a near-future post. While I won't go through everything in my OOW talk (because much of it is related to an earlier <a href="http://www.oracle.com/technology/products/warehouse/pdf/BestpracticesforDQ_withOWB.pdf">whitepaper on DQ, DW and MDM</a> and because OOW conference attendees must be paying for something), I'll hit the high points and pass along some anecdotes about Oracle's own DQ and MDM efforts around our own customer data. </p>

<p>Until then... </p>]]>
      
   </content>
</entry>
<entry>
   <title>Batch unload and remote agents</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/09/batch_unload_and_remote_agents.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.7834</id>
   
   <published>2008-09-26T19:02:58Z</published>
   <updated>2008-09-26T19:03:51Z</updated>
   
   <summary>This post illustrates natively unloading from other database systems such as Microsoft SQL Server using the Oracle 11g database scheduler&apos;s remote agent. This is all driven from the database via PLSQL api calls. The package relies on installing the lightweight...</summary>
   <author>
      <name>david.allan</name>
      
   </author>
   
   <category term="sqlserver" label="SQLServer" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="unloading" label="Unloading" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="agent" label="agent" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="file" label="file" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="performance" label="performance" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="remote" label="remote" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="scheduler" label="scheduler" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>This post illustrates natively unloading from other database systems such as Microsoft SQL Server using the Oracle 11g database scheduler's remote agent. This is all driven from the database via PLSQL api calls. The package relies on installing the lightweight agent on the database system, so for example install it on the SQLServer instance (see <a href="http://blogs.oracle.com/warehousebuilder/2008/03/11g_remote_agent_1.html">here </a>for details of the agent).</p>

<p> The package below has APIs for;<br />
&#160;&#160; * executing the unloader on the SQLServer node<br />
&#160;&#160; * zipping the unloaded data file<br />
&#160;&#160; * transferring the file to the Oracle instance for use by the next step</p>

<p>Here is an overview of the architecture for an unload from Microsoft SQLServer to Oracle, the remote agent is the Oracle scheduler remote agent;</p>

<p><img alt="owb_flat.JPG" src="http://blogs.oracle.com/warehousebuilder/owb_flat.JPG" width="850" height="256" /></p>

<p>The package specification to support steps 1/2/3 above is shown below, this leverages the DBMS_SCHEDULER package to execute jobs (it also relies on the user having execute privileges on DBMS_LOCK);</p>

<p><em><code>create or replace package OWB_AGENT_PKG as<br /><br />
&#160;&#160;procedure SS_UNLOAD (AGENT_BCP_EXE VARCHAR2, -- the BCP exe location<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AGENT_LOC VARCHAR2, -- the agent location, host:port<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AGENT_CRED VARCHAR2, -- the agent scheduler's credential name<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AGENT_DIR VARCHAR2, -- the directory to unload to<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SRC_SERVER VARCHAR2, -- the SQL Server instance<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SRC_USER VARCHAR2, -- the SQL Server user<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SRC_PWD VARCHAR2, -- the SQL Server password<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; TGT_NAME VARCHAR2, -- file name, .dat and .zip will be appended<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; REC_DELIM VARCHAR2 := '0x0A', <br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FLD_DELIM VARCHAR2 := '\t', -- ideally hex fld delimiter 0x07<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SQLQ VARCHAR2 ); -- the SQL query to execute<br /><br />
&#160;&#160;procedure ZIP_DATA (AGENT_ZIP VARCHAR2, -- location of the zip exe<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;AGENT_LOC VARCHAR2, -- the agent location, host:port<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;AGENT_CRED VARCHAR2, -- the agent scheduler's credential name<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;AGENT_DIR VARCHAR2, -- the directory where unloaded file is<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;TGT_NAME VARCHAR2); -- the name of the tgt<br /><br />
&#160;&#160;procedure GET_FILE (AGENT_LOC VARCHAR2,-- the agent location, host:port<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;AGENT_CRED VARCHAR2, -- the agent scheduler's credential name<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;AGENT_DIR VARCHAR2,-- the directory where unloaded file is<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;LOCAL_SQL_DIR VARCHAR2, -- the SQL directory name on tgt<br /><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;TGT_NAME VARCHAR2); -- the tgt name<br /><br />
end OWB_AGENT_PKG;<br /><br />
/<br />
</code><br />
</em></p>

<p><strong>How is this used to execute the unloader?</strong></p>

<p>When the SS_UNLOAD call is made a job will be created on the remote agent to call the BCP unloader, this will execute the query passed as a parameter and unload the result set to a data file. The file is delimited, we will see later how to construct an external table based on this file.</p>

<p><em><code> exec OWB_AGENT_PKG.SS_UNLOAD ('c:\progra~1\MI6841~1\90\Tools\binn\bcp.exe', 'agenthostname:agentport', 'TESTCRED', 'c:\temp', 'sqlserver_host', 'username', 'password', 'STG_SS', 'SELECT SALES_DATA.PROD_ID ,SALES_DATA.CUST_ID ,SALES_DATA.CHANNEL_ID ,SALES_DATA.PROMO_ID ,SALES_DATA.QUANTITY_SOLD ,SALES_DATA.AMOUNT_SOLD&#160;&#160;FROM demo.dbo.SALES_DATA SALES_DATA ');</code></em></p>

<p></p>

<p><strong>How is this used to zip the data file?</strong></p>

<p>The ZIP_DATA routine will compress the unloaded data file from the previous step using the zip.exe passed as a parameter, the -j flag is used for zip so that directory names are not also stored.</p>

<p><em><code> exec OWB_AGENT_PKG.ZIP_DATA ('c:\owb\bin\zip.exe', 'agenthostname:agentport', 'TESTCRED', 'c:\temp', 'STG_SS');</code></em></p>

<p><strong>How is this used to transfer the data file?</strong></p>

<p>To transfer the file from the SQLServer instance (for example) to the Oracle target use the GET_FILE routine, the transfer is encrypted and authenticated so the database can be sure of the agent identity.</p>

<p><em><code>  exec OWB_AGENT_PKG.GET_FILE ('agenthostname:agentport', 'TESTCRED', 'c:\temp', 'DAT_DIR', 'STG_SS');</code></em></p>

<p>The file must be unzipped on the Oracle target, again you can use a scheduler job with a local agent or use the OWB process flow to execute an external activity for the unzip.</p>

<p><strong>How is the stage table defined?</strong></p>

<p>To define the stage table as an external table based on the flat file, use the sample wizard on an extraction. </p>

<p><br />
Firstly import the metadata for the file;</p>

<p><img alt="owb_flat1.JPG" src="http://blogs.oracle.com/warehousebuilder/owb_flat1.JPG" width="611" height="172" /></p>

<p>Define the record delimiter used for the unload;</p>

<p><img alt="owb_flat2.JPG" src="http://blogs.oracle.com/warehousebuilder/owb_flat2.JPG" width="613" height="220" /></p>

<p>Define the field delimiter used for the unload;</p>

<p><img alt="owb_flat3.JPG" src="http://blogs.oracle.com/warehousebuilder/owb_flat3.JPG" width="616" height="290" /></p>

<p>Create an external table as the staging table;</p>

<p><img alt="owb_flat4.JPG" src="http://blogs.oracle.com/warehousebuilder/owb_flat4.JPG" width="440" height="128" /></p>

<p>Select the file definition to base the external table on;</p>

<p><img alt="owb_flat5.JPG" src="http://blogs.oracle.com/warehousebuilder/owb_flat5.JPG" width="612" height="219" /></p>

<p>After deploying the external table, the data can be viewed, this is the data unloaded via the BCP unload;</p>

<p><img alt="owb_flat6.JPG" src="http://blogs.oracle.com/warehousebuilder/owb_flat6.JPG" width="524" height="194" /></p>

<p><strong>Download the Unloading Package?</strong></p>

<p>The package providing these data unload capabilities can be found <a href="http://blogs.oracle.com/warehousebuilder/unloader.sql">here</a>. The package requires execute privilege on DBMS_LOCK. You will also need CREATE EXTERNAL JOB privilege.</p>

<p><strong>Summary</strong></p>

<p>As you see using the DBMS_SCHEDULER package we can run remote jobs such as unload/zip and transfer the file, these procedures can be leveraged in a mapping or flow to prepare the data files for loading into Oracle. The example illustrates SQL Server, for DB2UDB a similar path can be followed, I have also done this, but posted just the SQL Server version.</p>]]>
      
   </content>
</entry>
<entry>
   <title>On Data Quality and OWB at Oracle OpenWorld</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/09/on_data_quality_and_owb_at_oracle_openworld_1.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.7731</id>
   
   <published>2008-09-25T00:35:24Z</published>
   <updated>2008-09-25T01:08:40Z</updated>
   
   <summary>&quot;Can we use OWB as a standalone tool for data profiling, data quality and data auditing without disrupting our current ETL processing with Informatica/DataStage/hand-coded PL/SQL/what have you?&quot; 

The answer (as with all things OWB) is &quot;Of course you can.&quot; </summary>
   <author>
      <name>antonio romero</name>
      <uri>http://www.oracle.com/technology/products/warehouse</uri>
   </author>
         <category term="Data Quality" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>We've all been taking our shifts at the demo booths at OpenWorld, and talking to current or future (?) customers, and one question that's come up a number of times is:</p>

<blockquote>"Can we use OWB as a standalone data quality product for data profiling, data quality and data auditing without replacing our current ETL processing with Informatica/DataStage/hand-coded PL/SQL/what have you?" </blockquote>

<p>The answer (as usual) is "Of course you can." </p>

<p>OWB's initial data profiling is basically unobtrusive, extracting data from your sources into a temporary schema where the actual profiling work is done. And OWB's data auditors can test data periodically in your sources and targets even if those are loaded by some other tool. <br />
You can even use OWB to cleanse your dirty data in place, either in your staging area before loading your warehouse or in the ODS or master data itself. We do have customers who license the OWB DQ option for these kinds of scenarios, even when they already have other solutions for the ETL component. </p>

<p>Of course, you will get the maximum benefit from OWB DQ if you use the inline data quality capabilities to handle dirty data during ETL. But you can start introducing OWB DQ without doing a "big bang"-type re-implementation of your ETL in OWB.</p>

<p>OWB, including the data quality capabilities, is installed with any Oracle 11g database, and the standalone 10gR2 install is available on OTN as well to be installed alongside older Oracle databases. And while you do have to license the DQ option to really use it in production, of course, the surest way to know if data quality will add value is to evaluate it. You never know what's in your data until you look. Try a cursory data profiling effort on a subset of your data, just to see whether there's anything in there you aren't expecting. </p>

<p>Reminder: I'll be speaking on using OWB in DW and MDM-type scenarios Thursday at 9AM at Oracle OpenWorld. And my talk will contain tips and tricks on how to ease OWB into the DQ role with minimum disruption to your existing solution. OpenWorld attendees, please come to the talk or stop by the demogrounds booths for OWB to find out more.</p>]]>
      
   </content>
</entry>
<entry>
   <title>Oracle Warehouse Builder LinkedIn Group</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/09/oracle_warehouse_builder_linkedin_group.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.7420</id>
   
   <published>2008-09-23T06:13:30Z</published>
   <updated>2008-09-23T06:20:11Z</updated>
   
   <summary>There is now an Oracle Warehouse Builder LinkedIn Group: http://www.linkedin.com/groups?gid=140609 This group was not created to draw attention from the Oracle support forum, which is still the best venue for detailed technical questions-- it&apos;s just meant to give OWB users...</summary>
   <author>
      <name>antonio romero</name>
      <uri>http://www.oracle.com/technology/products/warehouse</uri>
   </author>
         <category term="Resources" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>There is now an Oracle Warehouse Builder LinkedIn Group:</p>

<p>http://www.linkedin.com/groups?gid=140609</p>

<p>This group was not created to draw attention from the Oracle support forum, which is still the best venue for detailed technical questions-- it's just meant to give OWB users an opportunity to network with each other, commnuicate about what they're doing in their OWB projects, and share work opportunities. All are invited to join.</p>]]>
      
   </content>
</entry>
<entry>
   <title>Comments, questions and the forum</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/09/comments_questions_and_the_forum.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.6776</id>
   
   <published>2008-09-18T16:25:09Z</published>
   <updated>2008-09-18T16:29:10Z</updated>
   
   <summary>When going through the blog I noticed some comments actually are questions. Not sure if everyone knows, but there is a very active product forum on OTN. The link has changed over the past couple of weeks, so make sure...</summary>
   <author>
      <name>jean-pierre.dijcks</name>
      <uri>http://www.oracle.com/technology/products/warehouse/index.html</uri>
   </author>
         <category term="Resources" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="elt" label="ELT" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="etl" label="ETL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="dataquality" label="data quality" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="database" label="database" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>When going through the blog I noticed some comments actually are questions. Not sure if everyone knows, but there is a very active product forum on OTN. The link has changed over the past couple of weeks, so make sure this is the link you use...</p>

<p>http://forums.oracle.com/forums/forum.jspa?forumID=57</p>

<p>So, make sure to post questions there, not at the blog (unless it is about specific blog posts of course).</p>]]>
      
   </content>
</entry>
<entry>
   <title>OWB and DW @ Oracle Openworld</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/09/owb_and_dw_oracle_openworld.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.6414</id>
   
   <published>2008-09-12T16:16:54Z</published>
   <updated>2008-09-12T18:18:23Z</updated>
   
   <summary>Tickets are booked, hotels are reserved, excitement is building... yes it is time for Oracle OpenWorld! As data warehouse and OWB enthusiasts we all want to know the best sessions to go to. Here is a useful PDF printable booklet...</summary>
   <author>
      <name>jean-pierre.dijcks</name>
      <uri>http://www.oracle.com/technology/products/warehouse/index.html</uri>
   </author>
         <category term="Resources" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="dataintegration" label="Data Integration" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="database" label="Database" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="owb" label="OWB" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="openworld" label="Openworld" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="warehousebuilder" label="Warehouse Builder" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>Tickets are booked, hotels are reserved, excitement is building... yes it is time for Oracle OpenWorld! As data warehouse and OWB enthusiasts we all want to know the best sessions to go to. Here is a useful PDF printable booklet that you can bring to the show to see the times for the OWB and DW related sessions. Anything from Data Mining, through partitioning, via OWB and to OLAP is in here.</p>

<p>Get it <a href="http://my.oracle.com/portal/pls/myo/utls_item_hits_pkg.get_item?p_item_id=60461977&p_site_id=1&p_type=basefile&p_url=http%3A%2F%2Fmy.oracle.com%2Fportal%2Fpage%2Fmyo%2FROOTCORNER%2FKNOWLEDGEAREAS1%2FKNOWLEDGEAREAS%2FCROSSPORTFOLIO%2FNEW_BIW%2FNEW_BIW217693%2FOLAP%2FOLAP%2520Option%2FOLAP%2520Option%2520Professional%2520Community%2520-%2520Product%2520Information%2FDW%2520at%2520OpenWorld.pdf">here</a>.</p>

<p>Oh and don't miss Andy Mendelsohn's session... should be good. Don't miss Larry's session this year, it promises to be good fun. Not sure if we have the cute penguins from 2 years ago again, but there will be sufficient stuff to talk about after that.</p>]]>
      
   </content>
</entry>
<entry>
   <title>Event Based Execution - File Arrival Example</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/09/event_based_execution_file_arrival_example_1.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.6225</id>
   
   <published>2008-09-08T22:38:00Z</published>
   <updated>2008-09-09T16:40:01Z</updated>
   
   <summary>If you want to do truly event based execution based on arrival of a file there is a convenient package supplied with the Oracle database scheduler component that can be used, the package can be downloaded from OTN here. For...</summary>
   <author>
      <name>david.allan</name>
      
   </author>
         <category term="ETL" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="etl" label="ETL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="event" label="event" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="file" label="file" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="fileloading" label="file loading" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="scheduler" label="scheduler" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>If you want to do truly event based execution based on arrival of a file there is a convenient package supplied with the Oracle database <a href="http://www.oracle.com/technology/products/database/scheduler/index.html">scheduler </a>component that can be used, the package can be downloaded from OTN <a href="http://www.oracle.com/technology/products/database/scheduler/file_arrival.zip">here</a>.</p>

<p>For example if you have an OWB mapping that uses an external table as a source and you wish to execute the mapping when a file arrives on the filesystem (that the external table is dependent on), then you can do this a number of ways, here we will illustrate how the database scheduler is used to execute the map.</p>

<p>After the package otn_sched_file_watch has been installed from the Oracle scheduler download described earlier we can use it to execute any job we have privilege to. For example given the following mapping;</p>

<p><img alt="owb_event1.JPG" src="http://blogs.oracle.com/warehousebuilder/owb_event1.JPG" width="515" height="452" /></p>

<p>which uses the file in STAGING_DIR named geog.csv;</p>

<p><img alt="owb_event2.JPG" src="http://blogs.oracle.com/warehousebuilder/owb_event2.JPG" width="518" height="132" /></p>

<p>If we wanted to execute the mapping when geog.csv arrives on the file system then we can create a file watch schedule and then create a job, this is described in the readme file for the file watch package. For an 10gR2 mapping this would be like the following (11g would also include the set_workspace code);</p>

<p>begin<br />
otn_sched_file_watch.create_file_watch_schedule('GEOGFILES','STAGING_DIR','geog.csv',FALSE);<br />
  dbms_scheduler.create_job(job_name=>'FA_JOB',<br />
    schedule_name=>'GEOGFILES',<br />
    job_action=>'declare  v varchar2(4000);r varchar2(4000); begin load_geog0.main(v,''false'',r); end;',<br />
    job_type=>'PLSQL_BLOCK',<br />
    auto_drop=>false,<br />
    enabled=>true);<br />
end;<br />
/</p>

<p>The mapping is a PLSQL implemented mapping so we can use the MAIN procedure to execute the mapping (as defined in the job_action parameter), we could also have used the OWB runtime APIs to execute the map or any process flow for example based upon events like this. The action in this case is a PLSQL block as defiend by the job_type parameter. We use the schedule GEOGFILES in the job creation which was defined using the api otn_sched_file_watch.create_file_watch_schedule</p>

<p>The file wait package will poll every 5 minutes for a while, as defined in the documentation the dba can change the setting using s function (otn_sched_file_watch_int.set_file_watch_intv) or each job owner can alter the frequency interval using dbms_scheduler.set_attribute using attribute repeat_interval.<br />
for example<br />
exec  dbms_scheduler.set_attribute('OTN_SCHED$_FILE_WATCH_JOB', 'REPEAT_INTERVAL', 'FREQ=MINUTELY;INTERVAL=1');</p>

<p>will change the repeat interval to every minute, a bit too frequent but ok for demos and getting the environment setup. See the DBMS_SCHEDULER documentation for the syntax for this property.</p>

<p>As you can see this is fairly straightforward to leverage and allows you to move data upon events rather than time based schedules. There are also some ftp based routines that are worth checking out in dbms_scheduler, these could be embedded as pre-post mapping triggers for example all leveraging the components of the Oracle database.</p>

<p><br />
</p>]]>
      
   </content>
</entry>
<entry>
   <title>SQL for workspace enablement</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/09/sql_for_workspace_enablement.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.6175</id>
   
   <published>2008-09-04T00:09:28Z</published>
   <updated>2008-09-16T15:52:44Z</updated>
   
   <summary>As a quick follow up on my post on accessing SQL views in 11g OWB, here is a simple one if you are in SQL Dev or SQL Plus: begin owbsys.wb_workspace_management.set_workspace(&apos;workspacename&apos;, &apos;workspaceowner&apos;); owbsys.start_enable_owb_roles; end; Replace the italics for workspacename and...</summary>
   <author>
      <name>jean-pierre.dijcks</name>
      <uri>http://www.oracle.com/technology/products/warehouse/index.html</uri>
   </author>
         <category term="Metadata" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="elt" label="ELT" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="etl" label="ETL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="metadata" label="Metadata" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="owb" label="OWB" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="sql" label="SQL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="warehousebuilder" label="Warehouse Builder" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="database" label="database" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>As a quick follow up on my post on accessing SQL views in 11g OWB, here is a simple one if you are in SQL Dev or SQL Plus:</p>

<p>begin<br />
owbsys.wb_workspace_management.set_workspace('<em>workspacename</em>', '<em>workspaceowner</em>');<br />
owbsys.start_enable_owb_roles;<br />
end;</p>

<p>Replace the italics for workspacename and workspaceowner with the name of your workspace and the name of the owner (or user of) the workspace.</p>

<p>Now you can do what you need in direct access tools like SQL Plus...</p>]]>
      
   </content>
</entry>
<entry>
   <title>OWB 10.2.0.4 Ports are released</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/09/owb_10204_ports_are_released.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.6130</id>
   
   <published>2008-09-02T18:31:53Z</published>
   <updated>2008-09-02T18:35:02Z</updated>
   
   <summary>As of now the following ports are available for OWB 10.2.0.4: Windows-32 Linux-32 HP-Itanium Linux x86-64 (AMD64/EM64T) HP-UX PA-RISC (64-bit) Sparc64 All of these can be downloaded from metalink (https://metalink.oracle.com/) under patch id 7005587. You will need to log into...</summary>
   <author>
      <name>jean-pierre.dijcks</name>
      <uri>http://www.oracle.com/technology/products/warehouse/index.html</uri>
   </author>
         <category term="Resources" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>As of now the following ports are available for OWB 10.2.0.4:</p>

<p>Windows-32<br />
Linux-32<br />
HP-Itanium<br />
Linux x86-64 (AMD64/EM64T)<br />
HP-UX PA-RISC (64-bit)<br />
Sparc64</p>

<p>All of these can be downloaded from metalink (https://metalink.oracle.com/) under patch id 7005587. You will need to log into metalink to download the patch.</p>

<p>The following platforms will follow shortly:</p>

<p>AIX5L Based Systems (64-bit)<br />
Vista-32 bit (and Windows2008-32, Windows2008-64)<br />
Windows-64 Itanium </p>

<p>More on those platforms once available.</p>]]>
      
   </content>
</entry>
<entry>
   <title>Sizing an OWB system...</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/08/sizing_an_owb_system.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.6037</id>
   
   <published>2008-08-25T21:32:05Z</published>
   <updated>2008-08-25T21:46:06Z</updated>
   
   <summary>Should I even go here...? Maybe not, but one thing that I thought would be interesting to mention here is an avenue to take when you are struggling with sizing. Yes, this will have loads of disclaimers but might be...</summary>
   <author>
      <name>jean-pierre.dijcks</name>
      <uri>http://www.oracle.com/technology/products/warehouse/index.html</uri>
   </author>
         <category term="ETL" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="dataintegration" label="Data Integration" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="datawarehouse" label="Data Warehouse" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="database" label="Database" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="elt" label="ELT" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="etl" label="ETL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="owb" label="OWB" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="sql" label="SQL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="warehousebuilder" label="Warehouse Builder" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="dataquality" label="data quality" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>Should I even go here...? Maybe not, but one thing that I thought would be interesting to mention here is an avenue to take when you are struggling with sizing. Yes, this will have loads of disclaimers but might be a better place to start than just out of the blue...</p>

<p>So, lets say we are trying to set up an OWB system, which may be a DW or Data mart. What hardware do we run this on so that we get some half decent performance? Good question. Ask the hardware guy, and you'll get lots of cool stuff that you may not need (or may, but find to expensive). Ask the software guys, and you'll get puzzled looks. Or a pointer back to the hardware guys.</p>

<p>Now what do you do. Well for starters, look at this page: http://www.oracle.com/solutions/business_intelligence/optimized-warehouse-initiative.html</p>

<p>Oracle has addressed the issue with pre-defined configurations that create a BALANCED system. It is not a system that will give you infinitely great performance for the smallest $$$ amount... it is a balanced system. This means you will get a good throughput in a normal data warehouse like situation. It does this balancing because it specifies all components. So not just CPU and memory, but disks, HBAs (connect your CPU to your disky things and is kind of required to actually load data and process it - yet often forgotten).</p>

<p>Back to sizing for OWB, these systems will do a good job because they are balanced, and we would expect them to be a good starting point for any DW system. </p>

<p>Since OWB does the ETL in the database, you would not need any extra hardware to host the ETL server, it will go into this single system. Due to that, sizing is simpler and hardware utilization is better.</p>

<p>For data quality sizing is a bit more complex, but even here, if you look at the basic systems, sizing a profiling application is roughly equal. Look at the total data size, determine complexity (much less users on the profile run, a few doing simple queries after it is profiled) and these configs would work as a good starting point as well.</p>

<p>Looking at that optimized warehouse page, note that most vendors are present, so you can kind of pick the one you like. Now I know the temptation is there to skimp on stuff, but if you start with this, and don't skimp on items, you might just have sized your system about right...</p>]]>
      
   </content>
</entry>
<entry>
   <title>SAP, OWB and the database</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/08/sap_owb_and_the_database.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.5854</id>
   
   <published>2008-08-11T16:28:46Z</published>
   <updated>2008-08-11T16:44:31Z</updated>
   
   <summary>Forgot to add this to the SAP blog post... while we are doing all this stuff on the SAP system, many people wonder if this only works on SAP on Oracle Database. The beauty of using ABAP and SAP JCO...</summary>
   <author>
      <name>jean-pierre.dijcks</name>
      <uri>http://www.oracle.com/technology/products/warehouse/index.html</uri>
   </author>
         <category term="ETL" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>Forgot to add this to the SAP blog post... while we are doing all this stuff on the SAP system, many people wonder if this only works on SAP on Oracle Database. </p>

<p>The beauty of using ABAP and SAP JCO components is that it does not matter! To OWB it is completely irrelevant what source database is used underneath SAP R/3. It all works outside of the database and there is no SQL being used whatsoever. That makes the solution so nice and so comfortable for SAP administrators. It is all in SAP, adhering to SAP rules and using SAP code.</p>

<p>So whether SAP runs on SQL Server, DB2 or Oracle (or anything else), you can use OWB to extract data from SAP.</p>

<p>Now, if SAP runs on Oracle, and not many people know this, you can treat the system as Oracle as well. So you can do what many (or most) other ETL tools do and go to the SQL layer. Not a problem. However I would recommend not to do this, and any ETL tool that uses SQL to access SAP is destined to become a problem. SQL looks at database tables, not pool and cluster tables. These are SAP constructs, not database constructs. Some of the most important tables in SAP are non-transparent (e.g. pool or cluster). OWB approaches these tables using ABAP so it can extract from them, no problem!</p>]]>
      
   </content>
</entry>
<entry>
   <title>OWB Public Views in 11g Release 1</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/08/owb_public_views_in_11g_release_1.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.5820</id>
   
   <published>2008-08-07T22:21:10Z</published>
   <updated>2008-08-07T22:27:08Z</updated>
   
   <summary>In OWB 11g the repository is a set of workspaces. In the public views this means you need to set the workspace context.This is not an issue from within a map as the workspace context is set prior to invoking...</summary>
   <author>
      <name>jean-pierre.dijcks</name>
      <uri>http://www.oracle.com/technology/products/warehouse/index.html</uri>
   </author>
         <category term="Metadata" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="dataintegration" label="Data Integration" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="database" label="Database" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="etl" label="ETL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="metadata" label="Metadata" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="owb" label="OWB" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="sql" label="SQL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="warehousebuilder" label="Warehouse Builder" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>In OWB 11g the repository is a set of workspaces. In the public views this means you need to set the workspace context.This is not an issue from within a map as the workspace context is set prior to invoking the map as the map audit needs this.  </p>

<p>However in order to view data inside OWB using the public views it is necessary to have this set and as OWB creates the connection, the only solution is a logon trigger. This also applies if you are going into any system where you do not control the login. In SQL Plus, you simply run the procedure after logging in or do some session stuff...  </p>

<p>As the trigger requires a pl/sql procedure that has execution rights on owbsys.wb_workspace_management.set_workspace this <br />
needs to be granted to the user. In addition, the OWB roles need to be enabled.</p>

<p>The workaround for this is to create the following procedure, grant the following rights to the users and then the logon trigger….  </p>

<p>Note the logon trigger has to be granted by sysdba.</p>

<p>Package Script</p>

<p>CREATE OR REPLACE procedure wb_initialize_workspace<br />
authid current_user as </p>

<p>/* To return the first workspace owned by a user */<br />
CURSOR ws_user_owner IS<br />
SELECT MIN(workspace_name) KEEP (DENSE_RANK FIRST ORDER BY workspace_id), user_name<br />
FROM owbsys.all_iv_workspace_assignments<br />
where user_name = USER and isworkspaceowner = 1<br />
GROUP BY user_name;</p>

<p>/* To return the first workspace associated with a user */<br />
CURSOR ws_user_user IS<br />
SELECT MIN(workspace_id) KEEP (DENSE_RANK FIRST ORDER BY workspace_id)<br />
FROM owbsys.all_iv_workspace_assignments<br />
where user_name = USER<br />
GROUP BY user_name;</p>

<p>p_id number;</p>

<p>/* To find the owner of a given workspace */<br />
CURSOR ws_owner_user IS<br />
SELECT workspace_name, user_name<br />
FROM owbsys.all_iv_workspace_assignments<br />
where workspace_id = p_id and isworkspaceowner = 1;</p>

<p>p_ws varchar2 (32);<br />
p_user varchar2 (32);</p>

<p>BEGIN</p>

<p>/* First try to find a workspace owned by this user.  If found make that the active workspace */<br />
open ws_user_owner;<br />
FETCH ws_user_owner INTO<br />
      p_ws,<br />
      p_user;</p>

<p>    IF not(ws_user_owner%NOTFOUND) THEN<br />
       owbsys.wb_workspace_management.set_workspace(p_ws,p_user);<br />
       close ws_user_owner;<br />
    ELSE</p>

<p>/* If none owned, get the first associated with this user */<br />
       open ws_user_user;<br />
       FETCH ws_user_user INTO<br />
          p_id;<br />
       IF not(ws_user_user%NOTFOUND)  THEN</p>

<p>/* Now find the owner of this workspace */<br />
          close ws_user_user;<br />
          open ws_owner_user;<br />
          FETCH ws_owner_user INTO<br />
             p_ws,<br />
             p_user;<br />
          IF not(ws_owner_user%NOTFOUND)  THEN<br />
             owbsys.wb_workspace_management.set_workspace(p_ws,p_user);<br />
             close ws_owner_user;<br />
          END IF;<br />
       END IF;<br />
    END IF;</p>

<p>END;<br />
/</p>

<p>Grants script</p>

<p>define user = &1<br />
grant execute on owbsys.wb_workspace_management to &user;<br />
grant execute on owbsys.wb_initialize_workspace to &user;<br />
alter user &user default role all except OWB$CLIENT;</p>

<p>Trigger script</p>

<p>set concat ~<br />
define user = &1<br />
CREATE OR REPLACE TRIGGER &user~_LOGON_TRIGGER<br />
AFTER LOGON ON &user.SCHEMA<br />
BEGIN<br />
  owbsys.wb_initialize_workspace;<br />
END;<br />
/</p>

<p>In addition when using PL/SQL to query the views, for any design time views you will need to grant select access to the user from owbsys (as roles don't work from within pl/sql). This is of course outside of the trigger stuff discussed here...</p>]]>
      
   </content>
</entry>
<entry>
   <title>Working in an SAP production environment with OWB</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/08/working_in_an_sap_production_environment_with_owb.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.5818</id>
   
   <published>2008-08-07T21:24:15Z</published>
   <updated>2008-08-07T22:28:05Z</updated>
   
   <summary>SAP is a bit different... it is more structured than most other environments and there are specific requirements on running ABAP programs in production systems. Since this is a common topic, and since we have a very nice solution (if...</summary>
   <author>
      <name>jean-pierre.dijcks</name>
      <uri>http://www.oracle.com/technology/products/warehouse/index.html</uri>
   </author>
         <category term="ETL" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="dataintegration" label="Data Integration" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="database" label="Database" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="etl" label="ETL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="metadata" label="Metadata" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="owb" label="OWB" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="sap" label="SAP" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="sql" label="SQL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="warehousebuilder" label="Warehouse Builder" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>SAP is a bit different... it is more structured than most other environments and there are specific requirements on running ABAP programs in production systems. Since this is a common topic, and since we have a very nice solution (if I may say so) for it in OWB, I figured to write it up on blog.</p>

<p>Some background, OWB comes with an SAP connector, and has done so for its entire life. We have invested quite a bit of time, effort and knowledge into this capability. Not just from our development staff, but also leveraging SAP expertise from New Frontiers (www.newfrontiers.com). Active users have worked on the connector to make sure it addresses things like the above described need of managing ABAP code in SAP (more later in detail of course). New Frontiers actually created an entire data warehouse out of the box based on the Oracle stack with OWB as the tool to create all ETL from SAP into Oracle and using OWB to model the entire dimensional model. More on that is <a href="http://www.newfrontiers.com/x/1-19/QuickStart_for_SAP_R/3.html">here</a>.</p>

<p>So what is the problem? In general, you cannot move some custom ABAP into an SAP production system without the SAP administrator actually moving it. So since OWB deploys into the system, that would not be acceptable as the program gets "injected" from the outside. OWB generated ABAP therefore must play within the rules.</p>

<p>Here is how this works in a real environment:</p>

<p>In the development environment you create your SAP location, and deploy the mappings. The system is open, so you run this directly from OWB. Not a problem. Now to move anything into the QA and Production systems, you cannot use the OWB deploy of a mapping (which will go into the SAP app and throw in a custom document - no SAP admin likes this).</p>

<p>QA / Production:</p>

<p>Once you have deployed the actual program into the DEV environment, you will have the SAP admin transfer (that is an SAP term with an SAP application screen) the program to the QA or Production system. While he/she transfers the program, variables can be changes like the data file location etc. These are specifically set up as variables (I forget the actual SAP name for a variable) in our generated ABAP for this purpose. Now the program is correctly loaded and moved without other modifications into the SAP application.</p>

<p>Some customers now want this executed from within SAP, some do still want this executed from within OWB. In the latter case you create a location pointing to the actual SAP production system, and in that location you tell us to use a function module Z_blabla. This function module is custom and we have example code for this. You also tell us in configuration that you do not want to deploy, but just want to execute the ABAP. Now OWB skips deployment (the actual Report is already there) and just executes the transported ABAP from its new location. The data file is generated, OWB will FTP the file and load it.</p>]]>
      
   </content>
</entry>
<entry>
   <title>DBLinks the sequel</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/warehousebuilder/2008/07/dblinks_the_sequel.html" />
   <id>tag:blogs.oracle.com,2008:/warehousebuilder//26.5660</id>
   
   <published>2008-07-31T17:44:36Z</published>
   <updated>2008-07-31T17:55:03Z</updated>
   
   <summary>Did the #2 option today on an 11g database (just to remind me that things are different in 11g). The simple way of getting OWB to use a dblink is to create your own connector (you may have to delete...</summary>
   <author>
      <name>jean-pierre.dijcks</name>
      <uri>http://www.oracle.com/technology/products/warehouse/index.html</uri>
   </author>
         <category term="ETL" scheme="http://www.sixapart.com/ns/types#category" />
   
   <category term="dataintegration" label="Data Integration" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="datawarehouse" label="Data Warehouse" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="elt" label="ELT" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="etl" label="ETL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="owb" label="OWB" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="sql" label="SQL" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="warehousebuilder" label="Warehouse Builder" scheme="http://www.sixapart.com/ns/types#tag" />
   <category term="database" label="database" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/warehousebuilder/">
      <![CDATA[<p>Did the #2 option today on an 11g database (just to remind me that things are different in 11g).</p>

<p>The simple way of getting OWB to use a dblink is to create your own connector (you may have to delete the one OWB creates by default when creating a mapping!) and specify a dblink on it.</p>

<p><img alt="connector_created_underloc.JPG" src="http://blogs.oracle.com/warehousebuilder/connector_created_underloc.JPG" width="179" height="72" /></p>

<p>My dblink is created as orcl@tgt_to_hr. It is important to name the connector the same as the dblink without using the servicename entry. So my connector was named TGT_TO_HR.</p>

<p>Once the link is in the db, and you are creating the connector, place the link name in the Details section. Make sure to use Browse... at least you are sure you have the right link name.</p>

<p><img alt="choose_dblink_for_connector.JPG" src="http://blogs.oracle.com/warehousebuilder/choose_dblink_for_connector.JPG" width="612" height="527" /></p>

<p>Once you have done this, the generated code will show the dblink being used and uses the schema name (as we saw earlier). Deploying the code will now use the precreated dblink.</p>]]>
      
   </content>
</entry>

</feed>
