Quantcast
Channel: SCN : Blog List - SAP Business ByDesign
Viewing all 245 articles
Browse latest View live

Run Everywhere with Business ByDesign - Warehouse Book Greece

$
0
0

In continuation to the blog post on the Run Everywhere with ByD, here is a post on one of the features we delivered for Greece with November 2014 version.

 

Warehouse Book Report (Inventory Report) for Greece has been delivered based on the cost method "Weighted Moving Average Price" (WMAP).

The report has been implemented in order to provide compliance with the Greek Tax legislation. The report tracks information of materials on Purchases, Sales,

Drop Shipments, Stock Transfer, Adjustments to inventory and Scrapping. There are two reports available for this purpose:

(a) WMAP Report

(b) WHB Report

 

These reports are run periodically on a monthly basis which determines the actual value of the remaining stock and consumption prices via WMAP.

 

WMAP Report: This report provides information of materials with Opening Balance, Opening Quantity, Closing Balance, Closing Quantity and WMAP at a Company Level.

 

WHB Report: This report provides information of materials with Opening Balance, Opening Quantity, Purchases, Sales, Drop Shipments, Stock Transfer, Adjustments and Scrapping. The report displays material valuation at each Business Residence of a Company.

 

Below figure represents the various documents considered in order to arrive at the WHB Report.

 

 

 

 

WHB.png


Material for Sales - C4C

$
0
0

"Withholding Tax" creation using PDI

$
0
0

In my previous blog, Simplified ‘Product Tax Code’ creation using ByD PDI , I had explained about the ease product tax code creation in PDI.

 

In further to this discussion, I would like to focus on the Withholding tax configuration steps and would like to explain the detailed intricacies while configuring Withholding tax for any country.

 

For any country, WHT configuration mandatorily needs defining the following elements.

  1. Withholding tax type
  2. Withholding tax rate type
  3. Income type
  4. Withholding Tax Event
  5. Withholding Tax Code
  6. Withholding Tax Configuration
  7. Decision tree (For automatic determination)

 

Generally configuration process for Withholding tax rates is considered as a complex process.  Business By Design PDI tool has simplified this quite along.  However ease of approach comes with a systematic definition process.

 

So let’s look at some focus points as below, which helps about configuration process.

 

  • In any WHT configuration for a country, one withholding tax type, one withholding tax rate type (marked as Standard) and one income type are mandatory.
  • For the withholding tax type, one tax rate type should be marked as “Standard (X)”.
  • For any withholding tax event which is marked “Non-Taxable Event”, you must not define tax type determination and tax calculation
    procedure determination. On selecting tax code which is mapped to non-taxable event in UI, you will not see any tax line.
  • For automatic tax determination, below configuration is mandatory.
    • You must define a decision tree in PDI.
    • Business partner should have withholding tax configuration with withholding tax type and a tax rate type mapped
    • Product should have withholding tax configuration with withholding tax type and the income type mapped.

            Note: Auto determination is not possible for free text items. However you can select the tax code manually.

 

  • Withholding Tax Rates Configuration is widely divided into three types.

3.JPG
          In addition to the above pictorial representation, here are some mandatory steps to be followed while developing/ choosing withholding tax rate configuration.

 

When to use case “Defining tax rates with tax rate types”?

    • Withholding tax rate determination based on tax rate types is used to classify the business partner (supplier) with different categories, for example resident and non-resident suppliers marking supplier with different tax rate types
    • If you want to build this case and classify the suppliers in different categories, then you have to define multiple tax rate types (one for each supplier category) and one income type.
    • In this case, a rate will be assign to each tax rate type (rate determination is based on supplier).
    • Withholding tax codes should be defined in one to one correspondence to the tax rate types, all of them having the same income
      type assigned.

              

               Example configuration:

 

               Tax Type:              Wtaxtype1

               Tax Rate types:    Wtaxtype1 – Wratetype1

                                             Wtaxtype1– Wratetype2

               Tax Rates:            Wratetype1 – 10%

                                             Wratetype2 – 20%

               Income type:        Wtaxtype1 -- Winctype1

                                             Wtaxtype1 – Winctype2 --- Incorrect, only one income type per tax type

               Tax event:             Wtaxevent1 – Wtaxtype1

               Tax Code:             Wtaxcode1 – Wtaxevent1 – Wtaxtype1 – Wtaxratetype1 – Winctype1

                                               Wtaxcode2 – Wtaxevent1 – Wtaxtype1 – Wtaxratetype2 – Winctype1

 

            When to use case “Defining tax rates with Income types” / “Defining tax rates with Income types and tax base correction”?

    • Withholding tax rate determination based on income types is used if withholding tax calculation varies for a group of products like product classification as Commissions, Commercial Discounts, Fees for Services etc.
    • In this case you must define multiple income types (one for each category) and one tax rate type (standard).
    • Rates must be assigned to each income type (rate determination is based on income type, with or without percentage base amount).
    • Withholding tax codes should be defined in one to one correspondence to the withholding tax income types, all of them having the same tax rate type assigned.

 

               Example configuration:

 

               Tax Type:              Wtaxtype1

               Tax Rate types:    Wtaxtype1 – Wratetype1

                                             Wtaxtype1– Wratetype2 – incorrect. Only one rate type should be defined

               Income type:        Wtaxtype1 -- Winctype1

                                             Wtaxtype1 – Winctype2

               Tax Rates:            Wtaxtype1 – Winctype1 – 10%

                                             Wtaxtype1 – Winctype2 – 20%

              Tax event:             Wtaxevent1 – Wtaxtype1

               Tax Code:             Wtaxcode1 – Wtaxevent1 – Wtaxtype1 – Wtaxratetype1 – Winctype1

                                               Wtaxcode2 – Wtaxevent1 – Wtaxtype1 – Wtaxratetype1 – Winctype2

 

  • During Withholding Tax configuration, “WHTRateDet” play a key role.  The picture below explains the dependencies with Withholding Tax configuration and Withholding Rate configuration.

2.JPG

    • In withholding tax configuration BC, if you choose “Supplier and entire line item base amount” for then you must define tax rate percentages under “WithholdingTaxTypeRateAssignment”.
    • In withholding tax configuration BC, If you choose “Income type and entire line item base amount” for WhtRateDet then you must define tax rate percentages under “WithholdingTaxRateIncomeTypeAssignment”
    • In withholding tax configuration BC, If you choose “Income type and percentage line item base amount” for WhtRateDet then you must define tax rate percentage under “WithholdingTaxBasePercentageAndRateIncomeTypeAssignment”

Success In The Cloud: Elum, Designing A Simpler Future In The Cloud

$
0
0

Discover how a small stationary business with very humble beginnings was expanding yearly with double digit growth.  Using 3 different solutions, they needed one solution with real-time visibility.


Read the latest Success in the Cloud blog with SAP Business ByDesign customer, Elum:


http://blogs.sap.com/innovation/cloud-computing/success-in-the-cloud-elum-designing-a-simpler-future-in-the-cloud-021427…


With SAP Business ByDesign, Elum's profits are up 31% and manufacturing costs down – they now Run Simple.

Solving the "Profit-follows-Employee" Challenge

$
0
0

Last week I visited a customer in the professional services area. They are structured in profit centers, conducting projects with customers. Sharing team ressources across profit centers is a common way. So - ByDesign seemed to be the first solution, but they were complaining about a missing piece. They don't assign employees to projects and get a standard cost rate on employee's cost center / profit center, but have the full (external) revenue there.

 

Example:

Profit Center A is responsible for a project, but needs ressources from profit center B. Default behaviuor in SAP Business ByDesign would be, to post all revenue to proft center A and to allocate a cost rate for the employee's hours from  B to A (B is debited, A credited). What they want is to have no default cost rate, but to allocate the revenue share of B's employee posted to profit center B.

 

Arguments from a business perspective are:

  • "Our business is profit driven - we are not looking at cost, margin is only controlled at a higher level, not at a project or profit center level." - this is a paradigm also referred to as "profit sharing".
  • A profit center manager should be motivated to employee people. Getting only a default rate would motivate him to borrow employees from other profit centers and to hold as many projects as possible.

 

So - how to solve this with a solution focusing to deal with standard rates, enabling project margin and a totally different view? We discussed this some rounds, but finally found a way to do this with SAP Business ByDesign. Here are key elements of our solution:

 

  • Don't maintain a single default rate, but maintain a service cost rate. Create a bunch of services with different cost rates. Before, identify what are your external prices. E.g. your external prices are 85$/h, 84$/h and 102$/h, two services with cost rates 83 and 100 could do it. In general, they will be little bit lower than the external price, but it will create only a little difference and not a real, large profit on the profit center and the project.
  • Employees are getting staffed and recording times with servcices reflecting the external prices. We came to the point that each service can handle a certain range of external prices, e.g. a cost rate of 83$ can handle external prices from 89$ to 83$ without causing larger differences.
  • Also, for transfer prices between different companies, these service rates can be applied.
  • No ressource cost rates must be maintained.

 

Our approach replaces profit contribution by a set of service cost rates getting to the same objective. It is causing some disadvantage, but every alternative approach trying to create a reporting parallel to system's postings might create differences and even systematical errors as well.

SAP awarded top-performing partners - Congratulations to Navigator

$
0
0

At this year’s SAP Field Kick-Off meeting, SAP awarded top-performing partners for their efforts in helping businesses adopt innovations with ease, support growth, and run simple with SAP solutions.

One of the partners awarded with the SAP® North America Partner Excellence Award 2015 in the category “SAP Cloud Resell" because of their outstanding performance related to SAP Business ByDesign is Navigator Business Solutions.

navigatorlogo.png

“With our outstanding ecosystem of partners, SAP is helping customers run bolder, faster and simpler,” said John Graham, head of Global Partner Operations, SAP North America. “Partners extend our ability to bring SAP innovations to more customers and add their proven solutions to serve our customers. We congratulate Navigator as one of our top-performing partners of the year in North America. Together, we are helping customers transform their business and delivering the innovation that fuels revenue and growth.”

Navigator launched its SAP Business ByDesign® practice only three years ago and has 100 successful cloud customers using the cloud solution today.

Navigator is headquartered in Salt Lake City, Utah, with more than 16 sales and service locations across North America, has a solid track record of on-time, on budget, and fixed price implementations, paving the way into the cloud.

"Navigator is thrilled to once again accept this incredible honor," said Grant Fraser, President & CEO of Navigator Business Solutions."  SAP cloud offerings have revolutionized the ERP industry and enabled Navigator to bring the benefits of flexibility, scalability, and affordability to small to midsize business like never before."

With hundreds of years of combined experience and being a top SAP partner for the last decade, we are looking forward to upcoming successful customer projects in the small-midsize businesses space.

Reading the Future of the Food Industry in Zhena's Gypsy Tea

$
0
0

Reading the Future of the Food Industry in Zhena's Gypsy Tea

 

Often the greatest triumphs emerge out of tragedy. That was certainly the case when Zhena Muzyka discovered that her son Sage was born with a severe birth defect. Medical costs alone threatened to overwhelm them both. Drawing on her ancestral roots among the Ukrainian gypsy population, Zhena realized that tea leaves could change her fate. She launched Zhena's Gypsy Tea, which would become a distinctive brand for organic, fair-trade, flavored and herbal teas that came with a commitment to sustainability and ethical sourcing.

237 Percent Growth

 

Based in Commerce, CA, Zhena's has been crafting small batches of artisanal teas for over a decade now. Starting out with a single cart on a street corner, Zhena's matured into a multi-million dollar company
depending on an extensive network of global partnerships.  However, at a growth rate of 237%, their mounting responsibilities rapidly outpaced the capacity of their IT infrastructure. On one side, the FDA pressed for greater transparency and import/export customs became more resource-intensive. From the other end, Zhena's active customer base grew more eager to learn about the origins of each unique tea.

 

It became clear that it was time for Zhena to change her fate once again.

 

A Strain on ERP

 

Paula Muesse, COO and CFO of Zhena's, outlined how she recognized that market change had outpaced their software's ability to handle enterprise resource planning (ERP): “When I came to Zhena's Gypsy Tea, we were using Quickbooks and Excel to manage our accounting and trying to manage ERP functions.... We had inventory in multiple warehouses around the world and as a result had to use multiple SKUs to identify the same stock based on location.”

 

What Zhena Needed

The entire record-keeping system was unnecessarily convoluted and paper-based. In addition, their stance as an organic tea producer translated into more audits and additional layers of oversight. They
identified four areas they needed their new software to handle:

 

1. Real-time analytics to make better split-second decisions.
2. A more predictable cost structure.
3. Flexibility to scale up as fast as demand, with more new teas and shorter lead times.
4. Computing power of a datacenter to manage everything they needed to do.

 

Profitability on Thin Margins

 

Zhena's felt that SAP Business ByDesign provided all of the functionality they needed to navigate the scope of their new responsibilities. The software was able to handle the complexity of their supply chain and to digitize their material processing so every step along the way became clear and traceable. Reporting functions put all the essential tea ingredient metrics, like yield losses and variances, in front of them to streamline audits and make better decisions. Margins are so razor thin in the food industry that this data makes all the difference in the profitability of the enterprise.

 

Connectivity in the Cloud

 

Most of all, Muesse stressed that cloud connectivity allowed her to become much more productive on her hectic schedule: “I love telling people that I've put purchase orders in from 35,000 feet.” The second
of the cloud's main benefits was that despite the scope of their business, Zhena's remains a relatively small company that couldn't tie up resources in an extensive IT department and the costs associated with maintaining servers. The cloud gave them the reach of enterprise software without the fixed costs of a data center.

 

Navigator's Fine Tuning

 

Zhena's was one of the early adopters of ByDesign and brought in Navigator two years later to explore the full potential of the platform. Navigator was able to automate ordering processes, integrate the
company website with SAP on the back end and fine tune management best practices to address Zhena's evolving challenges.

 

Beyond these operational considerations, the involvement with ByDesign gave Zhena's credibility with
investors as a company prepared to handle more growth. For customers, this brought greater visibility
into ingredient sourcing, proving that Zhena's still stands by their mission statement to “protect the
planet while enhancing your health and happiness.”

Recipe for Success

 

Zhena's Gypsy Tea demonstrates how to be successful in the highly competitive food industry. They used futuristic cloud-based ERP and logistics technology to connect modern tea drinkers with the ancient art of wellness through quality tea. They have done it with transparency and commitment to protecting the rights of tea growers around the world. In this case, it appears that simple tea leaves really can see the future.

Employee as Additional Account Assignment for Project Tasks

$
0
0

 

 

Especially in the area of Professional Services you often hear the requirement that Financial Reporting shall include information on the employees who rendered the services.

In the meantime, ByDesign (as of Feature Pack 1502) supports this feature at least for the cost side, provided you decided to switch this behavior on in the Business Configuration.

 

Here is what to do:

Go to the Activity List of your current BC Implementation Project and look for “Account Assignment Types”.

Mark the account assignment type “PRO” and add EMPLOYEE_ID as optional account assignment.

AccountAssignmentTypes1.png

AccountAssignmentTypes2.png

 

You are done!

 

Now, in a test system, create a sales order and a project, link them and then perform a few recordings all account assigned to the project you created:

·         Create internal service confirmations

·         Create external service confirmations
Create a purchase order for some 3rd party staff and let him/her do some time recording

·         Create one or more expense reports

·         Create a supplier invoice

 

Here is how the “Sales Document Line Item” report will look like in the following screen shot.

Please note that revenue recognition is enabled in my test system and I did not provide an accrual method for the sales order items. Thus the deferred costs are immediately recognized.

SalesDocumentsLineItemsReport.png>

 

In the Journal Entry you can now see the employee ID.

JournalEntry.png

 


SAP ByD Platinum Engineering "Meet the Expert" Session: “Intercompany Project Time and Expenses”:

$
0
0

The „SAP ByD Platinum Engineering“ team - from time to time - would like to offer live „Meet the Expert“ sessions.

These sessions will be announced here in the ByDesign Forum and a recording will be made available.

 

We plan to offer the first session towards end of Q1/2015.

It will be a session on the business scenario “Intercompany Project Time and Expenses”:

ICTimeAndExpense.png

For a list of all business scenarios supported, see SAP Business ByDesign Business Scenarios.

Here is a preliminary list of the contents:

  • Setting up the scenario
  • Challenges
  • Best practices
  • Q&A

 

We would very much appreciate if you could provide questions upfront.

We will then try to incorporate them into the session but would follow up with you in case we get too many questions.

 

Plaese stay tuned to get updates on the concrete date and how to access the session.

OData for SAP Business ByDesign Analytics

$
0
0

OData for ByD Analytics can be used to access the results of ByD analytics queries. In other words you can query and retrieve data and key figures exposed in ByD analytics reports. This includes

  • standard data sources and reports,
  • data sources and reports created via SAP Cloud Applications Studio,
  • custom reports based on standard or custom data sources, created as key user, and
  • extension fields added by key user tools or SAP Cloud Applications Studio.


As result, ByD OData for Analytics provides you a highly flexible framework to query, read and analyze ByD business data, well-suited to serve your integration scenario.


Below I will consider ByD OData rather from a business analytics point of view than from a REST point of view.

Further information about REST, the OData-protocol in general and OData specifications can be found at http://www.odata.org or http://docs.oasis-open.org/odata.

 

 

Meta Data


The goal is to get all analytics reports that I can access and all meta data (characteristics, key figures, data types, ...) for those reports.


Get OData "containers" for dialog user, or from a business user point of view: get all available work center for the current/logon user.

URL pattern: <your system hostname>/sap/byd/odata

Example: https://my123456.sapbydesign.com/sap/byd/odata

 

Get OData "entities" for a container, or get all available reports per work center incl. all report meta data like properties (key figures, characteristics), data types, etc..

URL pattern: <your system hostname>/sap/byd/odata/<shortened name of work center>_analytics.svc/$metadata

Example: https://my123456.sapbydesign.com/sap/byd/odata/bpm_businesspartnerdata_analytics.svc/$metadata

 

Get meta data for a specific entity, or get all meta data for a specific report.

URL pattern: <your system hostname>/sap/byd/odata/<shortened name of work center>_analytics.svc/$metadata?entityset=RP<report ID>QueryResults

Example: https://my123456.sapbydesign.com/sap/byd/odata/cc_home_analytics.svc/$metadata?entityset=RPCRMSLOIB_MQ0001QueryResults

 

 

 

Fetch Report Data


In all further examples I will skip the system host name.


Let me list some simple examples before I go through the OData options step by step.


You can fetch entity data by adding the ByD analytics report ID to your OData URL.

URL pattern: <your system hostname>/sap/byd/odata/<shortened name of work center>_analytics.svc/RP<report ID>QueryResults

Example:/sap/byd/odata/cc_home_analytics.svc/RPCRMSLOIB_MQ0001QueryResults

As result the system returns the first 50 entries of report "Sales Order Volume" (50 entries is the default page size).


Some more examples for ByD standard business partner reports:

Account collaboration data: /sap/byd/odata/bpm_businesspartnerdata_analytics.svc/RPBPCSCARB_Q0001QueryResults

Account contacts data: /sap/byd/odata/bpm_businesspartnerdata_analytics.svc/RPBPCSCONTB_Q0001QueryResults


... or little more sophisticated:

Assume you would like to analyze the consumption of customer contracts. For this scenario you create a joined data source with ByD service confirmation items and customer contract items and a ByD report to list and analyze service confirmation items aggregated by customer contract information.

Assume further the custom report has the report ID ZABCDEF12345678ABCDEF.

 

Get service confirmations for contract CC1001:

/sap/byd/odata/cc_home_analytics.svc/RPZABCDEF12345678ABCDEFQueryResults?$inlinecount=allpages&$select=FCISL_ACT_QTY_B,FCACCO_IAV_INV_QTY_BU,FCACCO_ITV_REQU_QTY_BU,
FCZ0COUNT,CIBR_CUCO_ID,TIBR_CUCO_ID,CIBR_CUCO_I_ID,TIBR_CUCO_I_ID,CCCCO_DPY_MAINBUYERPTY,
TCCCO_DPY_MAINBUYERPTY,CACCO_ITM_CREATIONDATE,CACCO_ITM_LASTCHANGEDATE
&$filter=CIBR_CUCO_ID
eq 'CC1001'

 

Get service confirmations joined with contract information, filtered by contract ID and contract item last changed date greater than 19th Feb. 2014:

/sap/byd/odata/cc_home_analytics.svc/RPZABCDEF12345678ABCDEFQueryResults?$inlinecount=allpages&$select=FCISL_ACT_QTY_B,FCACCO_IAV_INV_QTY_BU,FCACCO_ITV_REQU_QTY_BU,
FCZ0COUNT,CIBR_CUCO_ID,TIBR_CUCO_ID,CIBR_CUCO_I_ID,TIBR_CUCO_I_ID,
CCCCO_DPY_MAINBUYERPTY,TCCCO_DPY_MAINBUYERPTY,CACCO_ITM_CREATIONDATE,
CACCO_ITM_LASTCHANGEDATE
&$filter=CIBR_CUCO_ID
eq 'CC1001' and CACCO_ITM_LASTCHANGEDATE ge datetime'2014-02-19T00:00:00'

 

Get service confirmations joined with contract information, filtered by contract ID and some extension field of type datetime:

/sap/byd/odata/cc_home_analytics.svc/RPZABCDEF12345678ABCDEFQueryResults?$inlinecount=allpages&$select=FCISL_ACT_QTY_B,FCZ0COUNT,CITM_POST_DT,CITM_CREATED_DT,
CITM_CHANGED_DT,ZY86ABC123_ABC8D1B123
&$filter=CIBR_CUCO_ID
eq 'CC1001' and ZY86ABC123_ABC1234567 ge datetime'2014-02-19T00:00:00'

 

 

 

OData Query Options


The ByD OData URL consists of 4 components:

  • your system host name,
  • a shortened name of the ByD work center,
  • a report ID, and
  • query options.


URL pattern: https://<your system host name>.com/sap/byd/odata/<shortened name of work center>_analytics.svc/RP<report ID>QueryResults?
<query options>


ByD OData supports the following query options:

  • $select
    Expansion: $select=<one or more specified characteristics separated by commas>
  • $orderby (ascending)
    Expansion: $orderby=<one or more specified characteristics followed by asc, separated by commas>
  • $orderby (descending)
    Expansion: $orderby=<one or more specified characteristics followed by desc, separated by commas>
  • $totals
    Expansion: $totals=<one or more specified characteristics separated by commas>
  • $filter
    Expansion: $filter=<specified characteristic> eq '<filter value>'
  • $top
    Expansion: $top=<specified number>
  • $skip
    Expansion: $skip=<specified number>
  • $count
  • $inlinecount
  • $format

 

Select Option


The select option can be used to choose properties (key figures and characteristics) that shall be returned. Properties are specified using its technical names as provided in the entity meta data (e.g. CACCDOCTYPE for Journal Entry Type ID).


If no select options are specified in the URL, then the system returns all key figures and characteristics of the entity definition (report definition).

 

Example:

Select multiple characteristics:
&select=CCUSTOMER,TCUSTOMER,CCUCOREF,TCUCOIUUID,CPOSTDATE,CACCDCHUID,CSETOFBKS,CSRCNTHREF,CITM_ID


Please note that key figures are aggregated according the selected characteristics.


Example:

You query sales order items and select the key figures Number of Sales Order Items and Net Value, and the characteristics Product Category:

/sap/byd/odata/cc_home_analytics.svc/RPCRMSLOIB_MQ0001QueryResults?$inlinecount=allpages&$select=FCITEM_COUNT,FCITV_NET_AMT_RC,CIPR_CATCP_N,TIPR_CATCP_N

As result the system returns one entry per product category with aggregated sales order net values and the number of sales order items per product category:                      

Product category ID

Product category nameNumber of sales order itemsNet value
20IT Equipment35.415,00 EUR
310Marketing361.509,00 EUR
10-40Customer Service5744.572,00 EUR


The OData interface returns at maximum 50 properties (corresponding to a report with 50 columns).
If an entity has more properties defined, then specifying select options in the OData URL is mandatory. However, in this case I would recommend to copy the report and reduce the number of properties to 50.

 

Filter Option

 

OperatorDescriptionExample
eqEqual$filter=ServiceCategoryID eq '240-10'
neNot equal$filter=ServiceCategoryID ne '240-10'
gtGreater than$filter=Quantity gt 15
geGreater than or equal$filter=PostingDate ge datetime'2014-01-14T00:00:00'
ltLess than$filter=Quantity lt 95
leLess than or equal$filter=Quantity le 95
andLogical and$filter=Quantity le 95 and Quantity gt 15
orLogical or (for numeric characteristics)$filter=KCAMTCOMP le -10000 or KCAMTCOMP gt 10000


Examples:

  • Filter by customer ID and set of books ID: $filter=CCUSTOMER eq '1029754' and CSETOFBKS eq '4010'
  • Filter by posting date (type date time): $filter=CPOSTDATE ge datetime'2014-01-14T00:00:00'


Report default selections cannot be overwritten with OData based retrieval => I would recommend to copy the report and remove default selections.

 

Order By Option


The options $orderby=<characteristics name> asc or $orderby=<characteristics name> desc enable you to sort your query result ascending or descending with respect to a specific characteristics.


You can sort by characteristics, but not by key figures.


Example:

Select sales order net values per product category sorted by the product category ID and the product category name (ok, the example sorting doesn't make much sense, but it shows how it works):

/sap/byd/odata/cc_home_analytics.svc/RPCRMSLOIB_MQ0001QueryResults?$inlinecount=allpages&$select=FCITEM_COUNT,FCITV_NET_AMT_RC,CIPR_CATCP_N,TIPR_CATCP_N
&$orderby=CIPR_CATCP_N%20desc,TIPR_CATCP_N%20desc

 

Top, Skip Option (Paging)


The $top option specifies that only the first n records will be returned.

The $skip option specifies that the result shall not include the first n entities.

Both query options together can be used to process a paging through the server side hit list.


If no paging options are specified, ByD returns the first 50 entries due to default page size = 50.


Example:

Select the 3rd page of 10 entries (skip 20 and return 10), sorted by characteristic CIPY_BUY_CNTCD_N:

/sap/byd/odata/cc_home_analytics.svc/RPCRMSLOIB_MQ0001QueryResults?$inlinecount=allpages&$select=CIPY_BUY_CNTCD_N,FCITEM_COUNT,FCITV_NET_AMT_RC,
CIPY_BUYER_PTY,TIPY_BUYER_PTY,CIPR_CATCP_N,TIPR_CATCP_N
&$orderby=CIPY_BUY_CNTCD_N%20asc&$skip=20&$top=10

 

Totals Option


Using the totals option you can add entries with totals to the OData result.


Example:

The URL

/sap/byd/odata/cc_home_analytics.svc/RPCRMSLOIB_MQ0001QueryResults?$inlinecount=allpages&$select=CIPY_BUY_CNTCD_N,FCITEM_COUNT,FCITV_NET_AMT_RC,
CIPY_BUYER_PTY,TIPY_BUYER_PTY,CIPR_CATCP_N,TIPR_CATCP_N,
TotaledProperties&totals=CIPY_BUY_CNTCD_N,CIPY_BUYER_PTY,CIPY_BUY_CNTCD_N
&$orderby=CIPY_BUY_CNTCD_N%20asc

results in the additional totals entries (marked orange):

Product category IDBuyer party IDBuyer countryNumber of sales order itemsNet value
3201000111IN1220.00 USD
50-201000111IN4320.00 USD
IN5540.00 USD
10-40MC4001US61000.00 USD
40MC3123US8600.00 USD
US141600.00 USD
192140.00 USD

 

Other Options


Count:
Returns the total number of entries.

Example:

/sap/byd/odata/cc_home_analytics.svc/RPCRMSLOIB_MQ0001QueryResults/$count


Inline Count:

Returns the number of entries included in the query result.

Example:

/sap/byd/odata/cc_home_analytics.svc/RPCRMSLOIB_MQ0001QueryResults?$inlinecount=allpages&$select=FCITEM_COUNT,FCITV_NET_AMT_RC,CIPY_BUYER_PTY,
TIPY_BUYER_PTY,CIPR_CATCP_N,TIPR_CATCP_N,CIPY_BUY_CNTCD_N

 

Format:

Allows you to specify the result format:

  • Atom (default)
  • JSON

Example:
/sap/byd/odata/cc_home_analytics.svc/RPCRMSLOIB_MQ0001QueryResults?$inlinecount=allpages&$select=FCITEM_COUNT,FCITV_NET_AMT_RC,CIPY_BUYER_PTY,
TIPY_BUYER_PTY,CIPR_CATCP_N,TIPR_CATCP_N,CIPY_BUY_CNTCD_N&$format=json

 

Debug:

Example:

/sap/byd/odata/cc_home_analytics.svc/RPCRMSLOIB_MQ0001QueryResults?$select=FCITEM_COUNT,FCITV_NET_AMT_RC,CIPY_BUYER_PTY,TIPY_BUYER_PTY,
CIPR_CATCP_N,TIPR_CATCP_N,CIPY_BUY_CNTCD_N&sap-ds-debug=true

 

ID Access


Access an entry with a specified ID. IDs are provided in query results.

Example:

/sap/byd/odata/pmm_productdata_analytics.svc/RPSERVICE_Q0002QueryResults
('%7CCCHG_DATE%3D03/06/2015%7CCSERV_INT_ID%3DMCD-ICSP-1000%7C')

 

URL with special characters


Some OData consumer/browser may require URLs w/o. spaces and some special characters. In this case replace special characters
by the corresponding %-syntax:             

<space>%20
'%27
(%28
)%29


Example:

Readable version: $filter=CIBR_CUCO_ID eq '1001'

with %-Syntax: $filter=CIBR_CUCO_ID%20eq%20%271001%27

 

 

Authorization for OData Access


Every ByD user with read access to a work center with a report assigned has access to the corresponding entity via OData as well.

Technical users (e.g. from communication arrangements) cannot be used for OData access.


Steps to create a user with OData for Analytics authorizations:

  1. Create a ByD analytics report and assign the report to a ByD work center.
  2. Create a ByD employee or service agent (for service agents: request a ByD user).
  3. Assign the work center which contains the analytics report to the access rights of the employee or service agent.

The business user might get a specific security policy assigned that prevents password aging and hence necessity to change the password periodically.

 

If SAML SSO is configured on the tenant, and OData shall be accessed using basic authentication, SAML needs to be explicitly disabled for an OData call.

Example: /sap/byd/odata/srm_supplierbase_analytics.svc/RPBUPSPP_Q0001QueryResults?saml2=disabled

 

 

Some Trouble Shooting...


Error message: “Program error in class CL_RSBOLAP_QV_RESULT_SET method : TOO_MANY_DRILL_DOWN_OBJECTS

=> Report has too many properties; the report must not have more than 50 properties. Reduce the number of requested properties using parameter $select.


Error message: "Ressource für das Segment 'RP<report ID>QueryResults' nicht gefunden"

=> Logon user does not have authorization to access the report.


Error code: http 404

=> IE Version (better use Firefox) or user/password.


Meta data for report not shown, even if report can be used.

=> (Re-)assign report to work center.

 

Why does the oData service return 50 entries only?

=> 50 entries is the default if the parameter $top is not specified in the oData URL.Use $top, $skip and $inlinecount=allpages to
specify the number of entries to be returned and for paging.


Why does the oData service return less entries than expected, even if I didn't set any filter?

=> Report default selections cannot be overwritten with oData-based retrieval => Copy report w/o default selections.

Exposing ByDesign Reports and Fields via ODP Interface

$
0
0


The SAP Business ByDesign Operational Data Provisioning (ODP) Interface can be used to extract business data from ByDesign. The most popular use case is to connect ByDesign as source system to SAP BW.

 

You'll find a documentation of the integration scenario "Analytics Integration with SAP Business Warehouse" on SAP Business ByDesign – SAP Help Portal Page> Integration Scenarios.

 

One frequently asked question is, if the data of a specific ByD report or a specific report field can be extracted using ODP:

  • Which data can I extract using ODP? How can I expose my data source via ODP?
  • Which fields are supported?

Below I explain how get those information via ByD UI or via ByD web services.

 

Use Case

 

Let's assume the following scenario:

You work with ByD analytics report Financial Statement Consolidation Preparation - Data Export and you want to know if this report and the included field G/L Movement Type can be extracted using the ByD ODP interface.

 

Solution via ByD UI

 

Step 1:

Open report Financial Statement Consolidation Preparation - Data Export and check the Details (click on button "Details" on the upper right side).

Write down the data source used by the report, in our example this is data source FINGLAU01.

 

Step 2:

Open work center view Analytics > Design Data Sources and find the data source FINGLAU01.

Check if the data source is “Externally exposed” (only externally exposed data sources can be used by ODP):

ByD_list_of_datasources.jpg
If the data source is not yet exposed, you can expose it by button “Expose”.

If the data source is already exposed, you can use it in the ODP interface (incl. all fields).

 

Step 3:

Click on the documentation icon on the very right column to open the data source documentation with a list of all fields incl. field G/L Movement Type which we were looking for.

 

 

Solution via ODP Meta Data

 

ByD supports Operational Data Provisioning via web service OperationalDataProvisioningIn. In ByD the following interface operations are supported:

  • GetList
  • GetDetails
  • FetchDataDirect

The first two operations enable you to retrieve metadata incl. a list of exposed ByD data sources and the field structure of an exposed data source.

The 3rd operation can be used to fetch data from some data source.

 

Step 1:

Make sure that the data source FINGLAU01 is externally exposed (see section "Solution via ByD UI" above).


Step 2:

Get the Operational Data Provider ID:

The operation GetList provides you a list of all exposed data sources.

The web service request

<n0:OperationalDataProvisioningGetListRequest xmlns:n0=”http://sap.com/bw”><SubscriberTypeID>SAP_BW</SubscriberTypeID><ContextID>BYD_MDAV</ContextID><LanguageCode>EN</LanguageCode><GradualIndicator>true</GradualIndicator></n0:OperationalDataProvisioningGetListRequest>

returns the operational data provider FINGLAU01$F.

 

Step 3:

Get the field structure of operational data provider FINGLAU01$F using operation GetDetails:

The web service request

<n0:OperationalDataProvisioningGetDetailsRequest xmlns:n0="http://sap.com/bw"><SubscriberTypeID>SAP_BW</SubscriberTypeID><ContextID>BYD_MDAV</ContextID><OperationalDataProviderID>FINGLAU01$F</OperationalDataProviderID></n0:OperationalDataProvisioningGetDetailsRequest>

returns the response xml with the field structure including field G/L Movement Type:

getdetails_response.jpg

How to get ByDesign Code Lists via Web Service QueryCodeListIn

$
0
0

SAP Business ByDesign provides the web service QueryCodeListIn to query and read ByD code lists.

You'll find a documentation of the web service on SAP Business ByDesign – SAP Help Portal Page> Web Service APIs.

 

Below, I explain how to use web service QueryCodeListIn in context of other ByD web services.

 

 

Example Scenario

 

Assume we have a master data integration scenario in which we query, read, create and update accounts in ByD. ByD web services for accounts always request and return language-independent codes, for example industrial sector code 23 (meaning "Construction").

However, for some integration scenarios the code description is required as well, to be able to display account data in a human readable form.

 

 

How to use web service QueryCodeListIn?

 

The request signature of web service QueryCodeListIn mainly contain 3 elements:

  • Code data type name
  • Code data type namespace
  • Language code

 

The code data type specifies the data type for which the code list shall be requested.

The language code specifies in which language the code list descriptions shall be returned.

 

The key question is: How do I get the code data type name and namespace?

 

Step 1:

Get the WSDL of the web service which used the code; in our example scenario QueryCustomerIn or ManageCustomerIn.

You can download the web service WSDL via ByD UI, work center view Application and User Management> Communication Arrangements.

The code data type name and namespace URI are provided by the WSDL of the account/contact web service (the data type of the corresponding element):

 

Step 2:

Get the code data type name from the WSDL:

Capture.JPG

 

Step 3:

Get the code data type namespace URI from the WSDL:

Capture2.JPG

 

Now you have all information available to query the code list for industrial sector codes:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global">

   <soapenv:Header/>

   <soapenv:Body>

      <glob:CodeListByIDQuery_sync>

         <CodeListSelectionByID>

            <SelectionByCodeDataType>

               <Name>IndustrialSectorCode</Name>

               <NamespaceURI>http://sap.com/xi/AP/Common/GDT</NamespaceURI>

            </SelectionByCodeDataType>

            <SelectionByLanguageCode>EN</SelectionByLanguageCode>

         </CodeListSelectionByID>

      </glob:CodeListByIDQuery_sync>

   </soapenv:Body>

</soapenv:Envelope>

 

 

... some more Query Code List Request Examples

 

Country Codes:

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global">

   <soapenv:Header/>

   <soapenv:Body>

      <glob:CodeListByIDQuery_sync>

         <CodeListSelectionByID>

            <SelectionByCodeDataType>

               <Name>CountryCode</Name>

               <NamespaceURI>http://sap.com/xi/AP/Common/GDT</NamespaceURI>

            </SelectionByCodeDataType>

            <SelectionByLanguageCode>EN</SelectionByLanguageCode>

         </CodeListSelectionByID>

      </glob:CodeListByIDQuery_sync>

   </soapenv:Body>

</soapenv:Envelope>

 

Region Codes:

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global">

   <soapenv:Header/>

   <soapenv:Body>

      <glob:CodeListByIDQuery_sync>

         <CodeListSelectionByID>

            <SelectionByCodeDataType>

               <Name>RegionCode</Name>

               <NamespaceURI>http://sap.com/xi/AP/Common/GDT</NamespaceURI>

            </SelectionByCodeDataType>

            <SelectionByLanguageCode>EN</SelectionByLanguageCode>

            <SelectionByContext>

               <Parameter>

                  <Name>CountryCode</Name>

                  <Value>DE</Value>

                  <ListAgencyID></ListAgencyID>

               </Parameter>

            </SelectionByContext>

         </CodeListSelectionByID>

      </glob:CodeListByIDQuery_sync>

   </soapenv:Body>

</soapenv:Envelope>

 

Customer ABC Classification Codes:

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global">

   <soapenv:Header/>

   <soapenv:Body>

      <glob:CodeListByIDQuery_sync>

         <CodeListSelectionByID>

            <SelectionByCodeDataType>

               <Name>CustomerABCClassificationCode</Name>

               <NamespaceURI>http://sap.com/xi/AP/Common/GDT</NamespaceURI>

            </SelectionByCodeDataType>

            <SelectionByLanguageCode>EN</SelectionByLanguageCode>

         </CodeListSelectionByID>

      </glob:CodeListByIDQuery_sync>

   </soapenv:Body>

</soapenv:Envelope>


Company Legal Form Codes:


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global">

   <soapenv:Header/>

   <soapenv:Body>

      <glob:CodeListByIDQuery_sync>

         <CodeListSelectionByID>

            <SelectionByCodeDataType>

               <Name>CompanyLegalFormCode</Name>

               <NamespaceURI>http://sap.com/xi/AP/Common/GDT</NamespaceURI>

            </SelectionByCodeDataType>

            <SelectionByLanguageCode>EN</SelectionByLanguageCode>

         </CodeListSelectionByID>

      </glob:CodeListByIDQuery_sync>

   </soapenv:Body>

</soapenv:Envelope>


Tax Rate Type Codes:


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global">

   <soapenv:Header/>

   <soapenv:Body>

      <glob:CodeListByIDQuery_sync>

         <CodeListSelectionByID>

            <SelectionByCodeDataType>

               <Name>TaxRateTypeCode</Name>

               <NamespaceURI>http://sap.com/xi/AP/Common/GDT</NamespaceURI>

            </SelectionByCodeDataType>

            <SelectionByLanguageCode>EN</SelectionByLanguageCode>

            <SelectionByContext>

               <Parameter>

                  <Name>CountryCode</Name>

                  <Value>DE</Value>

                  <ListAgencyID></ListAgencyID>

               </Parameter>

               <Parameter>

                  <Name>TaxTypeCode</Name>

                  <Value>2</Value>

                  <ListAgencyID></ListAgencyID>

               </Parameter>

            </SelectionByContext>

            </SelectionByContext>

         </CodeListSelectionByID>

      </glob:CodeListByIDQuery_sync>

   </soapenv:Body>

</soapenv:Envelope>

 

Chart of Account Codes:

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global">

   <soapenv:Header/>

   <soapenv:Body>

      <glob:CodeListByIDQuery_sync>

         <CodeListSelectionByID>

            <SelectionByCodeDataType>

               <Name>ChartOfAccountsCode</Name>

               <NamespaceURI>http://sap.com/xi/AP/FinancialAccounting/Global</NamespaceURI>

            </SelectionByCodeDataType>

            <SelectionByLanguageCode>EN</SelectionByLanguageCode>

         </CodeListSelectionByID>

      </glob:CodeListByIDQuery_sync>

   </soapenv:Body>

</soapenv:Envelope>

 

Chart of Account Item Codes:

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global">

   <soapenv:Header/>

   <soapenv:Body>

      <glob:CodeListByIDQuery_sync>

         <CodeListSelectionByID>

            <SelectionByCodeDataType>

               <Name>ChartOfAccountsItemCode</Name>

               <NamespaceURI>http://sap.com/xi/AP/FinancialAccounting/Global</NamespaceURI>

            </SelectionByCodeDataType>

            <SelectionByLanguageCode>EN</SelectionByLanguageCode>

            <SelectionByContext>

               <Parameter>

                  <Name>ChartOfAccountsCode</Name>

                  <Value>CAAT</Value>

                  <ListAgencyID></ListAgencyID>

               </Parameter>

            </SelectionByContext>

         </CodeListSelectionByID>

      </glob:CodeListByIDQuery_sync>

   </soapenv:Body>

</soapenv:Envelope>

 

Accounting Document Type Code (aka Journal Entry Type Code):

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global">

<soapenv:Header/>

<soapenv:Body>

<glob:CodeListByIDQuery_sync>

<CodeListSelectionByID>

<SelectionByCodeDataType>

<Name>AccountingDocumentTypeCode</Name>

<NamespaceURI>http://sap.com/xi/AP/FinancialAccounting/Global</NamespaceURI>

</SelectionByCodeDataType>

<SelectionByLanguageCode>EN</SelectionByLanguageCode>

</CodeListSelectionByID>

</glob:CodeListByIDQuery_sync>

</soapenv:Body>

</soapenv:Envelope>

 

Object Type Codes (for example Journal Entry Source Document Type Codes):

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global">

<soapenv:Header/>

<soapenv:Body>

<glob:CodeListByIDQuery_sync>

<CodeListSelectionByID>

<SelectionByCodeDataType>

<Name>ObjectTypeCode</Name>

<NamespaceURI>http://sap.com/xi/Common/DataTypes</NamespaceURI>

</SelectionByCodeDataType>

<SelectionByLanguageCode>EN</SelectionByLanguageCode>

</CodeListSelectionByID>

</glob:CodeListByIDQuery_sync>

</soapenv:Body>

</soapenv:Envelope>

 

Industry Classification System Code and Industrial Sector Code:

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global">

   <soapenv:Header/>

   <soapenv:Body>

      <glob:CodeListByIDQuery_sync>

         <CodeListSelectionByID>

            <SelectionByCodeDataType>

               <Name>IndustrialSectorCode</Name>

               <NamespaceURI>http://sap.com/xi/AP/Common/GDT</NamespaceURI>

            </SelectionByCodeDataType>

            <SelectionByLanguageCode>EN</SelectionByLanguageCode>

            <SelectionByContext>

               <Parameter>

                  <Name>IndustryClassificationSystemCode</Name>

                  <Value>0005</Value>

                  <ListAgencyID></ListAgencyID>

               </Parameter>

            </SelectionByContext>

         </CodeListSelectionByID>

      </glob:CodeListByIDQuery_sync>

   </soapenv:Body>

</soapenv:Envelope>

Assign Role Supplier to an existing Business Partner via Web Service ManageSupplierIn

$
0
0

In SAP Business ByDesign 1502 the web service ManageSupplierIn has been enhanced by element CreateSupplierFromBusinessPartnerIndicator to assign the role “Supplier” to existing business partners.

 

In detail:

The element CreateSupplierFromBusinessPartnerIndicator can be used to assign the role supplier to existing business partners.

If this element is supplied with value "true", then the following constraints have to be considered:

  • The actionCode attribute in message node Supplier shall have value "02" (Update) or "04" (Save), otherwise an error message is returned.
  • If the actionCode attribute in message node Supplier has value "02" or “04” and the element InternalID or UUID is filled, then the system assigns the role supplier to the business partner with the given Internal ID or UUID.
  • If the actionCode attribute in message node Supplier has value “04” and the elements InternalID and UUID are both empty, then the system creates a new supplier using internal numbering.
  • If CreateSupplierFromBusinessPartnerIndicator = "true", but the role "Supplier" is already assigned, then the system ignores the CreateSupplierFromBusinessPartnerIndicator and returns no error message.

 

The following web service request assigns the role "Supplier" to the customer with ID 100123. Furthermore the web service request adds the supplier specific fields Standard Carrier Alpha and German Customs Number, and assigns the roles Bidder and Freight Forwarder to the supplier. All other business partner data remains untouched and will not be changed.

 

<n0:SupplierBundleMaintainRequest_sync_V1 xmlns:n0="http://sap.com/xi/SAPGlobal20/Global">

<Supplier actionCode="02" addressInformationListCompleteTransmissionIndicator="false" communicationArrangementListCompleteTransmissionIndicator="false" relationshipListCompleteTransmissionIndicator="false" contactPersonListCompleteTransmissionIndicator="false" paymentDataListCompleteTransmissionIndicator="false" bankDetailsListCompleteTransmissionIndicator="false" deviantTaxClassificationListCompleteTransmissionIndicator="false" withholdingTaxClassificationListCompleteTransmissionIndicator="false" generalProductTaxExemptionListCompleteTransmissionIndicator="false" textListCompleteTransmissionIndicator="false">

<ObjectNodeSenderTechnicalID>1</ObjectNodeSenderTechnicalID>

<InternalID>100123</InternalID>

<StandardCarrierAlphaCode>SC1234</StandardCarrierAlphaCode>

<GermanCustomsNumberCode>GCN9876</GermanCustomsNumberCode>

<BidderIndicator>true</BidderIndicator>

<FreightForwarderIndicator>true</FreightForwarderIndicator>

<CreateFromBusinessPartnerIndicator>true</CreateFromBusinessPartnerIndicator>

</Supplier>

</n0:SupplierBundleMaintainRequest_sync_V1>



Customer Specific Extension Fields

$
0
0

Extension fields are additional fields that administrators can add to a cloud solution from SAP.

Administrators can create extension fields for a screen that has been enabled for extension fields. The field can then be added to other screens, form templates, analytical data sources and reports, and so on.


To create extension fields you must be assigned to the Flexibility Change Log view in the Application and User Management work center:


Image1.jpg

Now I will create with you a new customer specific extension field in SAP Business ByDesign. For that I go to the adaptation mode which is available for me as a Key-User.


Image2.jpg

After entered the adaptation mode I open the view for which I will create the customer specific extension field.


In this case we have the view for a new opportunity. Beside the already existing information we will differentiate our opportunities between simple opportunities and by so-called “Must wins”. Respective reports were used for our forecast in the past and should continue to apply in the system.


Image3.jpg

Via Adapt you have the possibility to edit the screen. A window opens showing the functionality to add extention fields.


Image4.jpg

For our reporting requirement we need a checkbox to identify the special opportunities. Therefore we use the field type “Indicator”. Furthermore you can choose the default value, field label and a tooltip for your extension field. It’s also possible to translate the field names to other languages by clicking the small arrows.


Image5.jpg

The field is now available in different sections within the new opportunity. Select the desired section and mark the new field as visible. Please ensure that the field is marked as visible in the short overview and in the “View all” mode.


Image6.jpg

Via screen layout you can choose the correct position in the selected section. If you are happy with your settings publish your changes.


Image7.jpg

Image8.jpg


We overwrite individual personalization changes because we will use standardized templates for all our sales employees.

 

The next step will be to add our new extention field to data sources and reports.


To do this, please click on “Further usage”.

Image9.jpg

Image10.jpg

You can expand the existing data sources and reports by adding the new extention field. Typical the processing time takes a few minutes. The status indicator will change to green.


In the report, based on the selected data source, you can choose the extension field and analyse the data.


Image11.jpgImage12.jpg




A Unique Success Story: Chuck Norris implemented SAP Business ByDesign

$
0
0

...and here are the facts:

 

  1. Chuck Norris implemented ByD in 24 hours. Chuck Norris didn't answer business configuration questions - ByD felt his will.

  2. Chuck Norris uses ByD for family planning. The volume turned out to be no problem for ByD.

  3. Chuck Norris doesn't use Silverlight. He generated web services for all his system interactions.

  4. Chuck Norris doesn't plan integration projects; he feeds ByD web services from the command line.

  5. Chuck Norris plans his Quickstep choreography for the Let's Dance finals using ByD projects.

  6. Chuck Norris counts his heart beats using ByD service confirmations.

  7. Chuck Norris uses ByD journal entry vouchers to post on twitter.

  8. The ByD production model was built to challenge Chuck Norris.

  9. Chuck Norris fell in love with the ByD UI processing wheel and posted on the ByD Ideas Place to display her more often.

  10. Chuck Norris posted a ByD incident ... and got the answer to life, the universe and everything.

  11. Because of ByD, Chuck Norris is still ahead of Hans Sarpei.

 

 

Have a nice week end :-)


Mapping an SAP ECC IDOC to an SAP Business ByDesign A2X Service with Hana Cloud Integration

$
0
0

Business ByDesign comes with basic "out of the box" integration scenarios to SAP ECC. This includes for example master data integration for material and customer account data via IDOC XML, as described for example under the following link:

http://help.sap.com/saphelp_byd1502/en/PUBLISHING/IntegrationScenarios.html#MasterDataIntegrationwithSAPERP

 

While this enables very quick adoption of running integration scenarios, the lack of scenario extensibility can be a drawback, when larger data sets shall be integrated.

 

This blog describes step by step, how to realize an alternative approach for master data replication based on an ECC IDOC and a ByD A2X Service. The IDOC is sent from SAP ECC as an XML / SOAP message to Hana Cloud Integration (HCI). HCI maps the IDOC XML to the ByD web service XML format and invokes the A2X service interface.

The pure mapping of data structures is very similar to e.g. standard iFlows for master data replication between SAP ECC and SAP C4C. Specific care however needs to be taken of the web service response handling, due to the synchronous nature of A2X services. Adding additional field mappings to the project is then quite simple.

 

The material master replication based on the MATMAS05 IDOC Type serves as an example for the implemention of this communciation pattern.

 

The Eclipse project files that are required to run the example scenario are attached to this blog. The files need to be unzipped first, and then renamed from .txt to .zip. The resulting zip files can be imported as HCI Integration Projects into Eclipse.

 

 

ByD Communication Arrangement and WSDL File for A2X Service

 

To obtain a web service endpoint that can be invoked from an external system (in this case from HCI), a Communication Arrangement needs to be created in the ByD system (WoC view: Application and User Management --> Communication Arrangements). This in turn requires a Communication Scenario to be created, which contains the Manage Material In service, and a Communication System instance, which represents the calling system.

 

The WSDL file of the service endpoint can then be downloaded from the Communication Arrangement screen:

CommunicationArrangement.png

 

ALE Scenario Configuration and WSDL File for IDOC XML Message


Standard ALE Configuration is required to enable sending of IDOCs for material master records from ECC. This includes the following entities:

  • Logical System that represents the receiving ByD system
  • Distribution Model
  • Change Pointer Activation
  • Partner Profile
  • ALE Port
  • HTTP Connection


The ALE Port has to be of type XML HTTP, see transaction WE21:

ALEPort.png

The HTTP connection has to be of type "G" - "HTTP Connection to external Server", see transaction SM59:

SM59.png

Here, the host name of the HCI worker node, and the URL path as configured in the HCI iFlow (see below), have to be maintained. The URL path has to have the prefix /cxf/. SSL needs to be active for the connection.

 

The WSDL file for the IDOC basic type (MATMAS05) or a related extension type can be created with ABAP report SRT_IDOC_WSDL_NS directly in the ECC system. The report progam is provided with SAP Note 1728487.

WSDL2IDOC.png

 

Integration Flow Project in Eclipse

 

The Eclipse plugin for development of HanaCloud Integration content needs to be installed, as documented for example under the following link:

https://tools.hana.ondemand.com/#hci

 

Then an Eclipse HCI project of type "Integration Flow" can be created via the project wizard:

HCIProject.png

The project will finally contain at least the following entities:

  • iFlow definition
  • Message Mapping definition
  • WSDL files that describe the two XML signatures to be mapped

ProjectEntities.png

The following picture proposes an iFlow design to support the communication pattern that is discussed here:

iFlow.png

This example iFlow contains the following elements:


1. Sender System

Named SAP_ECC in the example.

Specifies the credentials to be used for service invokation on HCI (basic authentication vs. client certificate based authentication).

 

2. Sender SOAP Channel

Specifies the protocol (plain SOAP), and the endppoint URL path for service invokation on HCI. This has to fit to the URL path maintained in the SM59 connection on ECC (see above).

SenderChannel.png

The plain SOAP protocol is chosen instead of the IDOC SOAP protocol to be able to influence the response that is sent back to ECC based on the response received from ByD.

 

3. Content Modifier A

Reads the IDOC number from the IDOC XML payload through an XPath expression and stores it as a Property in the context of the iFlow execution.

ContentModifier1.png

 

4. Message Mapping

Defines the mapping of the IDOC XML structure to the A2X service XML structure. The two corresponding WSDL files that have been extracted as described above, have to be uploaded to the message mapping for this purpose:

Signatures.png

The mapping definition itself can mostly be done by dragging source elements to target elements in the graphical mapping editor.

MappingDefinition.png

The mapping definition that is part of the project file attached to this blog contains all element mappings provided by the standard material master inegration scenario, as described under the following link:

http://help.sap.com/saphelp_byd1502/en/ktp/Software-Components/01200615320100003517/BC_FP30/ERP_Integration/Subsidiary_Mapping_Info/WI_MD_Mapping_Info.html).

 

In addition, the gross weight is mapped to the quantity characteristic of the ByD material, which is a frequently requested feature.


5. Request-Reply Service Call

Is used to handle the response of the synchronous web service call and transfer it to subsequent processing steps of the iFlow.

 

6. Receiver SOAP Channel

Specifies the communication protocol that is used for the call to ByD (plain SOAP), the end point URL to be called, and the credentials to be used for authentication at the ByD system.
ReceiverChannel.png

In this case, basic authentication with user and password is used. The credentials object is deployed to the tenant (see "Deployed Artifacts").

 

7. Receiver System

Named SAP_ByD in the example.
Represents the target ByD system but doesn't contain any additional relevant information.

 

8. Exclusive Decision Gateway

Gateway.png

Defines the route to be chosen for further processing, depending on the web service response content.


The "Success" route is chosen by default.

 

The "Error" route is chosen if the ByD response contains a log item with severity code 3 (= error), which is the case if an application error has occurred. This information is extracted from the response payload through an XPath expression. Technical errors (e.g. due to wrong message payload syntax) are returned as SOAP faults with HTTP code 500. Such errors are directly handed back to the sender (i.e. here the ECC syystem) by the iFlow processing logic.

 

9. Content Modifier B

Assembles the IDOC XML response message in the success case. The IDOC ID (DOCNUM) in the sender system is read from the property, which has been set by Content Modifier A for this purpose.
ResponseBody.png

 

10. Content Modifier C

Assembles an XML repsonse message for the error case. The message contains the IDOC number in the ECC sender system and error information as received in the web service response issued by the ByD tenant.

ErrorResponse.png

The IDOC number is read from the iFlow properties and written into a header variable of the content modifier entity, since the subsequent storage operation can only access header variables to fill the Entry ID, but no property variables.


The error text is again extracted from the web service response payload through an XPath expression.

ErrorHeader.png

 

11. Data Store Operation (Write)

Persists the error response message in the tenant's data store. It is saved with the IDOC number as Entry ID.

DataStoreWrite.png


12. Final "Channel"

Indicates that a response is sent back to ECC, but contains no additionally relevant information.

 

 

Value Mapping Project in Eclipse

 

Value mappings need to be defined in a separate Eclipse HCI Integration Project of type "Value Mappjng".

ValueMap.png

The value mappings are then provided in the automatically generated file "value_mapping.xml".

VMProject.png

For the example project that is developed here, a value mapping is required only to map the ECC Material Group ID (MARA-MATKL) to a ByD Product Category ID. The respective mapping XML entry looks as follows:

VMXML.png

...and can be accessed from the message mapping definition as follows:

MATKL_Map.png

 

Trigger Material Master Replication

 

Create / change material master in ECC (transaction MM01/MM02):

MM02.png

...including basic data text:

MM02_2.png

Trigger Replication (transaction BD10):

BD10.png

Check that IDOC has been transferred successfully (transaction WE05 or BD87).

 

Verify the replication result in the ByD tenant:

ProductByD.png

 

Check Error Handling


An application error on ByD application side can be caused e.g. by changing the value mapping from ECC Material Group Code to ByD Product Category to obtain a target value that doesn't exist in the ByD system.


Based on the iFlow design that is discussed here, the IDOC processing will go into an error status on the ECC sender side in such a case. To obtain the error description, there are two options:

 

1. In ECC, transaction SRTUTIL, display the failed service call in the error log. The response message payload contains the error information as assembled by the iFlow in the "Error" route:

IDOCError.png

 

2. Access the tenant data store on Eclipse, and download the message that has been written into the data store:

DataStoreError.png

To be able to download entries from the data store, the user must have the "ESBDataStore.readPayload" permission, which is part of the "Business Expert" user role.

Company & Responsible Unit Now Available During Project Creation

$
0
0

Hi,

 

Since I head the requirement which was now implemented a few times, I would like to share this with you:

I just found out that when creating a project from an existing project, you are now able - as of ByD 1502 - to also show the company and the reponsible unit of the project to be copied in the object work list.

NeProject.JPG

The fields are not included in the OWL by default in order to not confuse users after the upgrade.

Thus, you either have to include the fields via personalization or let some admin include them in the adaptation mode.

 

Best regards

  Otfried

Using barcode field for warehouse tasks in web service

$
0
0

Just wanted to share some information on how to use the barcode field to confirm warehouse tasks like PUTAWAY tasks via web service call. Below you see the MaterialOutput section of the respective SOAP webservice request. Normally you would use <ProductID> and <ActualQuantity unitCode> tag. As an alternative you can use the <AutomaticIdentification> tag with the <BarCodeText>.

 

BARCODE1.PNG

 

The barcode field is built up as follows:

 

 

Barcode 91SR_CMP_001]C13010.0]C195EA

 

91 -> Barcode Identifier for Product

SR_CMP_001 is the Product

]C1 is the barcode delimiter

30 is the barcode identifier for quantity

10.0 is the quantity

]C1 is the delimiter

95 is the barcode identifier for unit of measure

EA is the unit of measure.

Excel Upload/XML File Input for BO with Header Level and Item Level Elements

$
0
0

Requirement:

To upload excel data to a BO having header level and item level elements.

Main BO.PNG

Assumptions:

Generally requirements come in which Data is to be uploaded to a Standard BO (Eg: Sales Order, Purchase Order etc). But I am using a custom BO which contains HEADER LEVEL ELEMENTS and ITEM LEVEL ELEMENTS. The concept is same for both Standard and Custom BO. The BO am using is shown above.

Process:

  1. It is not possible to upload excel for a BO (MAIN BO) containing a header level and item level elements. So we are going to create a Custom BO (Secondary BO) with the same fields as the Main BO and all the elements will be put in the same level.Secondary BO.png
  2. Now the concept is to create a SERVICE INTEGRATION for the secondary BO (i.e upload excel for the secondary BO) and a code must be written in EVENT-BEFORE-SAVE of the secondary BO which will enter the data in the Main BO.

 

I am using SERIAL_NO as ALTERNATIVE KEY, since SO_ID will contain duplicates for secondary BO when we make entry for each item level elements as shown below.

Excel Upload.png

 

  3. In the EVENT-BEFORE-SAVE of the Secondary BO we will write the following code. Comments are also provided.

Event Before Save 1.png

Continue……

Event Before Save 2.png

  4. After making a file input through Application User Management -> File Input, we can see the data entered in both the BOs i.e. MAIN BO and Secondary BO.

Secondary BO entry.png

Data entry in Secondary BO.

Main BO entry.png

Data entry in MAIN BO.

 

 

 

 

THANK YOU

Instructions on How to Handle Three Common Outbound Logistics Deviation Scenarios in SAP Business ByDesign

$
0
0

As many of us have experienced, transactions flow pretty smoothly through an ERP system until a deviation from the norm occurs. Deviations from normal processes can cause incorrect transactions, workarounds, or lost productivity when users do not have sufficient instructions on how to handle these. This blog will cover how to handle three common scenarios within Outbound Logistics in SAP Business ByDesign where deviations from the regular processes might occur.

Scenario #1 - An Outbound Delivery was Discovered to have been Accidentally Over- or Under-Shipped.

 

If it’s discovered that an Outbound Delivery was shipped with an incorrect quantity, then you’ll want to make an adjustment to reflect the correct quantity. To do so, you’ll need to start by Undoing the Release of the Outbound Delivery in SAP Business ByDesign. This can be done within Outbound Logistics -> Outbound Deliveries. Select the row of the Outbound Delivery that needs to be adjusted, then click Actions -> Undo Release.

 

Outbound Deliveries in SAP ByDesign

 

Now, go to Outbound Logistics -> Monitoring -> By Warehouse Order. Within the View “All Warehouse Orders”, type in either the ID of the Sales Order related to the Outbound Delivery, or the Outbound Delivery ID itself. Make sure you select the correct Warehouse Order (you can tell by the details that appear when it’s selected – ensure that it has the right associated Outbound Delivery that appears below the main list). Once it’s selected, click “Edit”.

 

Warehouse Order SAP Business ByDesign

 

Within the Outbound Warehouse Order screen that appears, click “Adjustment Confirmation”.

 

Outbound Warehouse Order SAP ByDesign

 

Within the Adjustment Confirmation screen that appears, you’ll see a list with Line Items with each quantity that was confirmed during the Pick Task. To adjust the quantity, first select the row of the Line Item you want to modify, then click “Enable Entry”.

 

Adjustment Confirmation SAP ByDesign

 

Enter the adjustment quantity for the Line Item. Note that this is additive – that is, it will be summed with the current Fulfilled Quantity to produce the new Fulfilled Quantity. In the example below, if I had only actually shipped a quantity of 9 each, then I would enter a negative 1 each to offset the currently Fulfilled Quantity of 10 each. Note that you can enter adjustments for multiple Line Items at once. You do have to Enable Entry for each Line Item you want to adjust.

 

Adjustment SAP ByDesign

 

Once you’ve entered your adjustment(s), click “Save”. You should see the Fulfilled Quantity reflect your adjustments.

 

Adjustment SAP Business ByDesign

 

Once you’ve made your adjustment, navigate back to Outbound Logistics -> Outbound Deliveries, then located the Outbound Delivery. If your default View is “Released Outbound Deliveries”, you’ll need to change it to “Unreleased Outbound Deliveries” or “All Outbound Deliveries” first to locate the Outbound Delivery that you undid release for in the first step.

 

Outbound Deliveries in SAP ByD

 

Select the Outbound Delivery, then click the “Release” button.

 

SAP Outbound Deliveries

 


 

Scenario #2 – A Pick Task is Created for a Product that is Discovered to not have Enough Quantity in Stock for Fulfillment.

 

This scenario may occur due to an inventory adjustment or emergency count, as typically this scenario shouldn’t occur if your Customer Demand is Released “With Stock Check.”

 

In this scenario, we’ll need to back the transaction out of Outbound Logistics.

 

To do so, you need to find the Warehouse Request itself within Outbound Logistics -> Monitoring -> By Warehouse Request.

 

The easiest way to search for it is by the associated Sales Order ID. You’ll want to ensure the drop-down is either Released Warehouse Requests or All Warehouse Requests. Select the appropriate Warehouse Request and click the Reject Request button.

 

SAP ByDesign Monitoring

 

Once the Warehouse Request is rejected, the Order will appear again within Outbound Logistics -> Delivery Requests. Search by the associated Sales Order ID once more. Select the Delivery Request and all line items that need to be rejected. Click the Reject button.

 

SAP ByDesign Delivery Requests

 

Once rejected the order will go back to the Customer Demand work list, and can then be re-released to Outbound Logistics when sufficient inventory is available.


 

Scenario #3 – A Pick Task Needs to be Completed with Only Partial Fulfillment.

If an order needs to be shipped quickly, but the full quantity for fulfillment is not available in the warehouse and the Sales Order item is marked for Multiple Deliveries, you have the option of completing a Pick Task with a partial quantity.

 

To do so, the process is the same as the standard process up until the point at which the Pick Task is confirmed. In this scenario, use the manual Confirm button to navigate to the Pick Task detailed confirmation screen. Within the manual confirmation, enter the values for the Actual Quantity picked and the Source Logistics Area it was picked from.

 

For any of the Line Items that only had a partial quantity picked, go to the Quantities section within the General sub-tab and click on the drop-down to specify a Deviation Reason. If there isn’t an appropriate deviation reason, contact your system administrator in order to update the list. Once all the values have been entered, click Save.

 

SAP ByDesign Confirm Pick

 

Once either a full quantity, partial quantity and deviation reason, or zero quantity and deviation reason have been entered, navigate to Outbound Logistics -> Monitoring -> By Warehouse Order. You can select the system provided Warehouse Orders with Deviations query to locate the related Warehouse Order for the Pick Task that was partially confirmed. You should also see an orange circle indicator in the Deviation column. Select the Warehouse Order and click Edit.

 

SAP ByDesign Warehouse Order

 

Within the Warehouse Order screen, navigate to the Operations tab. You will see an orange circle in the Deviation column for any line that wasn’t fully confirmed and had a deviation specified. At this point, there are three main options to process each Line Item with a deviation:


Accept Deviation and Reject Open Quantity– this will send the unfulfilled quantity back to the Delivery Due List, where it can be released at a later point in time when the inventory contains quantity to finish fulfillment.

 

This is likely the most common option to select, as it will execute the checks to ensure that inventory quantity exists prior to re-release to the warehouse.


Accept Deviation– this will take any of the unfulfilled quantity and send it back to Delivery Proposals so that another attempt will be made to pick the quantity once the proposal is processed.

 

This would most likely be used in the event that the inability to fulfill the full quantity is due to a short term issue.

 

Typically, this should be avoided if automatic Delivery Proposal processing is used as, unless the necessary quantity is added to inventory prior to the Delivery Proposals being automatically processed again, it will generate another Pick Task that will require a deviation.


Reprocess Open Quantity– this is used if the deviation was accidentally specified. This will allow the open quantity to be confirmed. Once a Deviation method is accepted the Warehouse Order will be set to a status of Finished.

 

SAP ByDesign Outbound Warehouse Order

 

We hope the three scenarios described above will help you tackle the most common Outbound Logistics deviations in SAP Business ByDesign. Feel free to reach out should you have questions or need assistance with SAP Business ByDesign.


Written by:

Micah Trujillo, SAP Business ByDesign Practice Manager

Dan Edelman, Senior SAP Business ByDesign Consultant

Viewing all 245 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>