Tag Archives: Dynamic

A 180-Year-Old Business and a Startup Both Manage Growth, Change in Dynamic Health and Beauty Industry

Posted by Branden Jenkins, GM of Retail, Oracle NetSuite

Bigelow A 180 Year Old Business and a Startup Both Manage Growth, Change in Dynamic Health and Beauty IndustryIn New York City’s bustling Greenwich Village, a vintage neon sign from the 1930s invites patrons to explore the vast array of mainstream and offbeat health and beauty products within C.O. Bigelow, America’s oldest apothecary. On the shelves are typical soaps, shampoos, toothpastes and the like, along with Bigelow-branded products like Lemon Body Cream, its recipe unchanged since 1870.

While the wooden shelving, brass finishes and gas chandeliers more than a century old evoke a sense of history, making it, “by far the coolest place in New York to buy anything beauty-related,” as a Stylecaster reviewer put it, C.O. Bigelow still must deal with the challenges of a modern health and beauty company.

For many, that means a carefully cultivated and evocative brand image, showcased on a sleek, image-rich ecommerce website. Key strategies to elevate a company’s profile in this highly competitive market can include celebrity endorsements, an emphasis on organic ingredients, and aggressive social media marketing.

But beauty is only skin deep. Beneath the surface, health and beauty companies need superior operational efficiency to minimize costs and delays. Inventory, ordering and customer service need to function flawlessly to meet and exceed customer expectations.

Bigelow, in its own description, “transports customers back to a time and place of personalized attention, customized formulas and healing, and therapeutic preparations.” The store was founded in 1838, moving in 1902 two doors down the street to its present location. Bigelow has stayed true to those roots throughout its 180-year history, while simultaneously embracing modern technology to succeed in today’s ever-changing market, even in the face of stiff competition and an influx of chain drug stores.

It struck up partnerships with retailers such as Nordstrom, Sephora and Barney’s, growing the wholesale channel 20 to 30 percent annually in recent years. And notably, it does brisk business with global hotels and airlines that supply Bigelow goods to travelers around the world.

Owner Ian Ginsberg, whose grandfather purchased the business in 1939, says technology is a key ingredient to Bigelow’s success in a changing world: “We’re the ones who survived the disruption. We’re a traditional business surviving in a modern world.”

“The game has changed in all facets of retail,” Ginsberg said. “As growth has slowed, you have to learn how to make money on your bottom line. The more tools and technologies you have to improve your bottom line, the better off you are.”

Since 2013, Bigelow has used NetSuite for core functions of financials, reporting, order management, and inventory management across 30,000 SKUs. Especially valuable, Ginsberg said, are dashboards and real-time reporting that help Bigelow improve cost-efficiency and its bottom line.

Ovation Hair, a manufacturer of high-end hair care products in Carlsbad, southern California, doesn’t have the history that Bigelow does, but it’s confronting many of the same challenges. The 50-person company celebrated its 10-year anniversary in 2017 and has seen rapid growth by every measure.

It joins other upstarts that are challenging household names like Estée Lauder, L’Oréal and Unilever by opening new direct-to-consumer channels to complement traditional distribution strategies.

It comes at a special time. Global health and beauty product sales are expected to grow 73 percent between 2016 and 2025, to $ 750 billion, says Inkwood Research, a Boston-based research firm. Manufacturers and retailers need speed and agility to take advantage of growing opportunities.

For Ovation Hairrevenue is growing annually at a double-digit pace. It has expanded its product lineup beyond its flagship Cell Therapy product, which uses a proprietary blend of proteins, vitamins, botanical extracts and amino acids to help both women and men grow thicker, stronger, longer hair. Today, customers can choose from more than 25 products, including shampoos, conditioners, shaving lotions, vitamins and accessories.

Starting out an ecommerce pure play, Ovation Hair products are now sold on the QVC shopping channel, third-party marketplaces and through roughly 75 select salons in the U.S. And the company is growing globally. Earlier in 2017, it introduced international shipping to countries in Latin America, Asia, Europe and Africa, with ordering available online or over the phone. 

Effective marketing has been instrumental in Ovation Hair’s success. Once advertising mostly through radio spots in southern California, the company now reaches customers and cultivates evangelists through YouTube, Facebook, a blog and other social channels. And it’s grown a database of 500,000 contacts for personalized marketing engagement.

On its www.ovationhair.com website, Ovation Hair offers regular promotions, refer-a-friend rewards, a loyalty program and a 100 percent satisfaction guarantee. Subscription replenishment has proven effective in driving recurring revenue. Beyond marketing, Ovation Hair is also an in-house manufacturer, producing its products at a plant in southern California.

“Developing customer intimacy is extremely important for us,” said Erika Sherwood, Ovation Hair Marketing Manager. “The customer dictates what our next steps are in terms of product development and what they’re looking for from the company.”

Over its 10 years, Ovation Hair has capitalized on new marketing and fulfillment channels in the face of increasing competition. “The industry has evolved a lot over the past couple of years, especially with social media and influencers,” Sherwood said. “There are a lot of ‘me-too’ products out there making the same claims without substantiation.”

Deployed in late 2010, NetSuite has been pivotal to Ovation Hair’s success. The company uses NetSuite for financials, inventory, order management and manufacturing, with SuiteCommerce providing a mobile-friendly ecommerce site. NetSuite is also the repository for all customer information, providing a foundation for personalized marketing and customer service.

The ever-evolving health and beauty industry requires retailers to be nimble, agile and adaptable to change. C.O. Bigelow and Ovation Hair, two companies with completely distinct histories and backgrounds, serve as prime examples of retailers that have found success by applying these requirements. A combination of creativity, product innovation, new distribution channels and technology have helped them maintain a competitive edge and thrive. Learn more about how NetSuite supports health and beauty companies, including COOLA, Anisa International, Epicurean, Perfectly Posh and The Beauty Collective, by visiting our health and beauty page.

Learn More at NRF – Retail’s BIG Show

If you are heading to NRF taking place January 14-16, be sure to schedule a demo to experience NetSuite’s software used by health and beauty companies like C.O. Bigelow and Ovation Hair. Your brief, 15-minute demo will have a big impact. NetSuite, through RetailROI, will be donating $ 300 to the Miracle Foundation for each person that schedules and attends a 15-minute demo during NRF, providing clean water to orphans in need.

Let’s block ads! (Why?)

The NetSuite Blog

Dynamic value within Table not being evaluated

 Dynamic value within Table not being evaluated

This is a bit of a follow-up question to my post here. I’m now attempting to replicate the same general code using Connect Four (7×6 grid instead of 3×3).

However, when I pass a Dynamic value to my createBox function, it seems to use values such as board$ 3379[[1,6]] instead of using the actual board variable. I believe this relates to the RuleDelayed issue described here but using With doesn’t seem to help.

When I remove the Dynamic function before board[[x,y]] it works as intended.

createBox[elem_] := Module[{},
   Print@elem;
   Graphics[
    {{White, Rectangle[]}
     , Switch[elem
      , "A", {Red, Disk[{0.5, 0.5}, 0.4]}
      , "B", {Blue, Disk[{0.5, 0.5}, 0.4]}
      , " ", {Thick, Circle[{0.5, 0.5}, 0.4]}
      , _, {}
      ]
     }, ImageSize -> 50, Frame -> True, FrameStyle -> Thickness[.02], 
    FrameTicks -> None
    ]
   ];

CreateDialog[
  DynamicModule[
   {board = ConstantArray[" ", {7, 6}], player = "A"},
   Grid[
    Table[
     With[{y = y, x = x}
      , EventHandler[
       createBox[Dynamic@board[[x, y]]]
       , {"MouseClicked" :> (
          If[board[[y, x]] === " ",
            board[[x, y]] = "A";
            ];
          )}
       ]]
     , {y, Length@board[[1]], 1, -1}, {x, Length@board}
     ], Spacings -> {0, 0}
    ]
   ], WindowTitle -> "Connect Four", WindowSize -> All
  ];

Is there a better way to structure this?

Let’s block ads! (Why?)

Recent Questions – Mathematica Stack Exchange

How to Insert Dynamic Tables into Workflow Created Emails in Dynamics 365

Recently for a project I was a part of, one of the requirements given was to insert a table with dynamic values into an email in Dynamics 365. The email this table was being inserted into was being created within an existing workflow using the “Create Record” step for the ‘Email’ entity. The screenshot below shows an example workflow I created with the same email creation step inserted in a workflow created for Accounts and an extra step for adding the table.

image thumb How to Insert Dynamic Tables into Workflow Created Emails in Dynamics 365

To meet this requirement, I decided to use a Custom Workflow Activity (CWA) just after the email was created and just before sending it. In this example, I will use the same methods but I will not be sending out the final email from Dynamics 365.

This CWA would take both the newly created email and the record the workflow is running on, in this case account as inputs. The CWA would first retrieve the data to be shown in a table, which in this example was a list of Contacts related to the Account. Note that the “sdk” variable is of type IOrganizationService.

image thumb 1 How to Insert Dynamic Tables into Workflow Created Emails in Dynamics 365

The  next step would be to format the retrieved values and place them nicely in a table. The code in the screenshot below shows how I created and populated the table but this step could be done in a number of different ways.

image thumb 2 How to Insert Dynamic Tables into Workflow Created Emails in Dynamics 365

Then finally the CWA would find the placeholder within the emails description, which in this case was “

”, replace it with the created table and update the email.

image thumb 3 How to Insert Dynamic Tables into Workflow Created Emails in Dynamics 365

The screenshot below shows the finished email sent out with the dynamically populated table values in Dynamics 365.

image thumb 4 How to Insert Dynamic Tables into Workflow Created Emails in Dynamics 365

Let’s block ads! (Why?)

Magnetism Solutions Dynamics CRM Blog

How to initialize PopupMenu with first element on each dynamic update?

I wrote a function, which lists directories, which may contain “model” files in the following format

{dirpath1->dirname1, dirpath2->dirname2, ...

i.e. in format, suitable for PopupMenu function.

Then I wrote a function, which lists model files in given directory in the same way

{filepath1->filename1, filepath2->filename2, …

I was wishing to select directory in first popup and then select file in second popup and wrote

PopupMenu[Dynamic[dir], GetModelDirectories[]]

Dynamic[PopupMenu[Dynamic[fil], GetMatFiles[dir]]]

It worked, but partially: if I change first popup, second popup turns empty

8zK1G How to initialize PopupMenu with first element on each dynamic update?

and I need explicitly select second popup

Ozr9j How to initialize PopupMenu with first element on each dynamic update?

Is it possible to initialize second popup automatically to the first item in the list?

Let’s block ads! (Why?)

Recent Questions – Mathematica Stack Exchange

Dynamic data comparisons using disconnected slicers, TreatAs and inactive relationships

Got a good question this week that had me scratching my head for a bit but then I remembered a new function that was added to Power BI (and SSAS) recently called TreatAS. Marco covered it in detail here. So what they wanted to do is have a visual where they can view the sales and compare it with sales of different colors. So let’s get too it.

Too start out please make sure you read Marco’s post really well, the trick I am about to show you works really well but if you can use the alternative (real relationships) it is preferred for performance reasons. Having said that lets continue.

I have a very simple model with Sales by product:

 Dynamic data comparisons using disconnected slicers, TreatAs and inactive relationships

Now I visualize it by creating a visual that shows Sales by Manufacturer:

 Dynamic data comparisons using disconnected slicers, TreatAs and inactive relationships

The goal here to show 4 bars:

  • one with the total sales
  • one with sales only for specific colors selected by a slicers
  • one with sales only for specific colors selected by another slicers
  • one with the remaining sales not part the selection

To start I want to populate and create the slicers. I can’t use the values of the table itself as that would filter all the results so I have to create two new tables with these values to make “disconnected” slicers. To do this I create a two new calculated tables

Colors = VALUES(DimProduct[ColorName])

and

MoreColors = VALUES(Colors[ColorName])

This created two new tables in my model with just the colors:

 Dynamic data comparisons using disconnected slicers, TreatAs and inactive relationships

Observe I didn’t create any relationships as I want to control this in the measure itself (more on this later)

Next I add the values as slicers to the report:

 Dynamic data comparisons using disconnected slicers, TreatAs and inactive relationships

So now I want to add the bars for sales of all colors selected in Color 1 and another for all colors in Color 2. To do this I add a new measure using the new TREATAS function:

CALCULATE(SUM(FactOnlineSales[SalesAmount]),TREATAS(VALUES(Colors[ColorName]),DimProduct[ColorName]))

What this measure does is calculate the Sum of SalesAmount and filtering the ColorName from the DimProduct table with the values if the current selected values of ColorName from the Colors table, like an actual relationship was used.

Now going back to the visual where I added the measure and selected 2 colors, we only see the sales for those 2 colors selected:

 Dynamic data comparisons using disconnected slicers, TreatAs and inactive relationships

Now adding the same measure for Color 2

 Dynamic data comparisons using disconnected slicers, TreatAs and inactive relationships

MoreColorsSelected = CALCULATE(SUM(FactOnlineSales[SalesAmount]),USERELATIONSHIP(MoreColors[ColorName],DimProduct[ColorName]))

As last measure I am adding the remaining sales:

RemainingColors = SUM(FactOnlineSales[SalesAmount])-[ColorsSelected]-[MoreColorsSelected]

Now that I have that I can also add this using stacked charts to create a single bar that is split up dynamically:

 Dynamic data comparisons using disconnected slicers, TreatAs and inactive relationships

Now this works great but I hope you read Marco’s blog post and read his warning, whenever you can you should always use relationships. While I was working on this blog post it dawned on me that we can just as well use Inactive relationships here. So I went to the diagram view and created them:

 Dynamic data comparisons using disconnected slicers, TreatAs and inactive relationships

Then instead of using TREATAS I am using our traditional USERELATIONSHIP instead

MoreColorsSelected = //CALCULATE(SUM(FactOnlineSales[SalesAmount]),TREATAS(VALUES(MoreColors[ColorName]),DimProduct[ColorName]))
CALCULATE(SUM(FactOnlineSales[SalesAmount]),USERELATIONSHIP(MoreColors[ColorName],DimProduct[ColorName]))

this will, only for this measure, activate the relationship and filter the product table with the selects colors. This gives the same results but with better performance, now with a small dataset like this you will never notice any issues but if you use this with billions of rows and complex calculations any performance gain will help. It still shows you that you can use TREATAS in other more interesting scenario’s or example lets say we want to see the sum of sales amount for both selections at the same time. I could write something like this:

MoreColorsSelected2 = var Selections = UNION(VALUES(Colors[ColorName]),VALUES(MoreColors[ColorName]))
return CALCULATE(SUM(FactOnlineSales[SalesAmount]),TREATAS(Selections ,DimProduct[ColorName]))

This will use the UNION of these two values as filter for the ColorName column, now we can extend this to do all kind of cool things here but I will leave that up to your imagination  Dynamic data comparisons using disconnected slicers, TreatAs and inactive relationships

You can download the entire file here: https://github.com/Kjonge/DemoWorkbooks/blob/master/selection.pbix

Let’s block ads! (Why?)

Kasper On BI

Dynamic Opportunity for the Dynamics 365/CRM Community at D365UG/CRMUG Summit in Nashville

Summit 2017 CYB CRM7 Border Dynamic Opportunity for the Dynamics 365/CRM Community at D365UG/CRMUG Summit in NashvilleHey y’all!

This fall, step away from your screens, pack up your big ideas, and head to D36UG/CRMUG Summit Nashville, the most comprehensive, impressive, and roarin’ good time conference of the year. As a proud Gold Sponsor, Ledgeview Partners is excited to share this experience with you as we squeeze every last bit of functionality out of the products and get you the ROI you want—and deserve.

Why YOU should attend

D365UG/CRMUG Summit on October 10-13 is THE go-to conference that brings Microsoft Dynamics 365/CRM industry experts, software development vendors, and everyday users together to discuss important issues, trends, product updates, customer pain points, and genuine solutions. The value of this conference is endless!

Here are a few more reasons why you should attend:

  • Geek out over great content: There’s no better instructor than an actual Microsoft Dynamics 365 or Dynamics CRM user. Receive deep level technical training in a focused environment on Dynamics CRM functions and entities that you can utilize every day of the year.
  • Meet & network with your user group buddies: D365UG/CRMUG Summit provides countless opportunities to create lasting relationships by connecting and networking with your Dynamics 365 & CRM peers.
  • Learn from your seriously smart peers: Learn from and connect with Dynamics CRM experts and MVPs on a personal basis.
  • Evaluate and test solutions: Understand third party solutions and learn what they can do for your industry or organization.

>> Save 10% on registration with a code from Ledgeview Partners!

D365UG/CRMUG Summit discounted early bird pricing is available now! Save an additional 10% off your already discounted registration when you use Ledgeview’s exclusive coupon code: PRPLedgeview

So giddy-up, grab your boots, and join Gold Sponsor Ledgeview Partners in Nashville!


D365UG CRMUG Summit Nashville Email Signature Gold 625x105 Dynamic Opportunity for the Dynamics 365/CRM Community at D365UG/CRMUG Summit in Nashville

Ledgeview blk and color dots 300x90 Dynamic Opportunity for the Dynamics 365/CRM Community at D365UG/CRMUG Summit in Nashville

Let’s block ads! (Why?)

CRM Software Blog | Dynamics 365

Explicit dynamic analysis

 Explicit dynamic analysis

I have to simulate a blast on a plate, so I require to input time varying pressure force just like a triangular impulse. Can someone guide me through the process or attach the link from where I could learn it in AceFEM.

Let’s block ads! (Why?)

Recent Questions – Mathematica Stack Exchange

Tech Tip Thursday: Dynamic Power BI reports using Parameters

Microsoft’s Guy in a Cube has been providing tips and tricks for Power BI and Business Intelligence on their YouTube channel since 2014. Occasionally on Thursdays we highlight a different helpful video from the collection.

Did you know that you can dynamically filter data in Power BI using parameters that are stored in an Excel workbook? In this video, Patrick from Guy in a Cube shows us how, using M Functions within Power Query and a gateway to enable data refresh. Check it out!

Let’s block ads! (Why?)

Microsoft Power BI Blog | Microsoft Power BI

DAX “Reanimator” Series, Episode 1: Dynamic TopN Reports via Slicers

Power BI Report thumb DAX “Reanimator” Series, Episode 1: Dynamic TopN Reports via Slicers

Guess how many articles are here on PowerPivotPro.com?  Go ahead and think of a number, I’ll wait.

The answer, at time of writing, is 923.  Rob alone has published 715 articles!  And these date all the way back to 2009.

A lot of these articles are “old,” but folks, the DAX engine is still 99% the same today in Power BI (and Excel 2016) as it was when it first “hit the shelves” in Spring 2010.

The motivation behind this “Reanimator” series, then, is twofold:

  1. Help newer converts/readers rediscover some of the most-awesome techniques previously covered here (without being so lazy as re-posting them in their original form)
  2. “Refresh” those techniques for the brave new world of Power BI (since the vast majority of old articles were written when we only had Power Pivot)

What better way to do that than to re-create those workbooks in Power BI Desktop and embed the report directly…Within. This. Post! wlEmoticon smile DAX “Reanimator” Series, Episode 1: Dynamic TopN Reports via Slicers

A New Age of Self-Service BI Users

I’ve been fortunate enough to be given the honor of sharing with you, our community, all these wonderful posts written by many of our in-house industry experts. Updated in all their glory into the wonderful world of Power BI. Now you can click, slice, interact, touch (…dirty), and drill (dirtier!) with these reports to your hearts desire. Just as the BI gods intended them to be! My hope is that these updates will instill these tools to the growing number self-service BI users just getting into the field and who want to do AWESOME things with their reports.

Highlights From The Original Post(s)

So this update is actually a continuation of not just one…but TWO posts written by Rob in the distance past of 2012 (in technology years that’s basically forever). The two original posts were:

Dynamic TopN Reports Using PowerPivot V2!

Dynamic TopN Reports via Slicers, Part 2

Excel Report thumb DAX “Reanimator” Series, Episode 1: Dynamic TopN Reports via Slicers

Rob demos some pretty ingenious techniques using his (now prolific) disconnected slicers technique to not only control the Top N Number you’d like to see on charts or graphs, but also the Value that you want to see that Top N Number ranked on. I’ve used it in MANY reports I’ve made over the years, always impressing the customers who used them.

Now I don’t want to give too much away in this post, instead directing you back to the walkthrough via the links above. I’m just here to whet your appetite enough with some fancy Power BI Reports, and if you want to learn the DAX code, hop into Rob’s posts.

This “Picture” Below is an Interactive Power BI!

Isn’t Something Missing?

Some of our more avid blog readers may be thinking “wasn’t there a THIRD post about TopN filtering?”. Yes, in fact there was. It was written by guest contributor Colin Banfield and is called Dynamic TopN Reports via Slicers, Part 3. It’s a fantastic post which covers ways to add BottomN metrics, Month/Year slicers, and more. I chose not to use that workbook since I wanted to capture the core story from the original posts written by Rob. If you’re inclined however, I recommend reading all three as they will add real value to your DAX tool belt. Until next time P3 Nation!

Download the Files!

Download the PBIX files

X

Get Your Files

Let’s block ads! (Why?)

PowerPivotPro

Why Dynamic Planning And Analysis Optimizes Decisions

273791 273791 l srgb s gl Why Dynamic Planning And Analysis Optimizes Decisions

Gone are the days of a single annual planning cycle. Or at least – those days should be gone.

Planning processes have certainly evolved. Previously, many companies started their planning process in September (assuming a December fiscal year-end), and spent a large part of the fourth quarter on planning iterations. Once the plan was approved, there were few adjustments; however, a significant amount of time was spent on explaining plan/actual differences throughout the year.

As changes in the business environment began to accelerate, companies evolved to a rolling forecast. Instead of waiting until the end of the fiscal year to begin a new planning cycle, companies began to plan and adjust their budgets based on actual data that came in during a financial period, giving them a rolling 12-month forecast.

Today we need real-time planning to account for disruptive business models and sudden changes in demand. This requires organizations to act quickly to make changes to the plan, potentially moving funds due to changes in a business model, customer demand, or other factors.

Levels of planning

Every part of the organization, not just finance, must engage in planning:

  • Finance: There are many ways to plan financial information. Of course, there are balance sheets and P&L financial planning, but also management accounting planning for cost centers, internal orders, profit centers, projects, and dimensions of profitability, including logistics information such as customers, products, and regions.
  • Operations: HR plans for headcount, salary, benefits, and training costs. Sales and marketing departments estimate customer demand, plan for expenses to ensure closed deals, and evaluate product pricing. Meanwhile, manufacturing plans capacity and product mix, as well as any materials they need to procure. In the best case, sales and manufacturing planning complement each other.
  • Organizational hierarchies: Especially in large organizations, business units and subsidiaries also plan, and these plans need to roll up to the corporate level. Similar to intercompany reconciliation of actuals, cross-business adjustments may need to be made.

Integrated planning

A key challenge has always been the siloed nature of planning, both for financial planning as well as the influence of operational planning on finance. In many companies, the different types of planning are performed in a different system or spreadsheet, requiring manual consolidation. And each time there is a change, the reconciliation starts from scratch.

Enter modern finance solutions.

Instead of relying on different systems and manual processes, these solutions enable a single, consolidated view of all planning and forecasting information across all financial, operational, and organizational levels. This includes a rollup of planning information from subsidiaries into corporate planning, as well as automatically including operational plans in financial plans to measure their impact on both the financial and management controlling plans.

And since the same information is used for transactional processing – analytics as well as planning – there is no lag time, ensuring that the most up-to-date information is available at any time. Simulations, what-if analyses, and predictive capabilities allow for the modeling of all planning options.

Before and after

To see how this works, let’s take a look at the planning processes in two organizations. One company – let’s call it Mary’s Manufacturing – has many disparate planning systems, as discussed above. The other, Stephanie’s Software, has implemented a state-of-the-art finance solution. This team is not only capable of consolidating and updating planning information in real time, but can also use sophisticated dynamic planning tools to evaluate the financial impact of all strategic options available.

Consider a merger and acquisition (M&A) scenario. The finance team at Mary’s Manufacturing spends so much time in manual consolidations that they cannot possibly evaluate each M&A scenario. Instead, they must pre-select only a few options, meaning they’re not considering every scenario. On the other hand, Stephanie’s Software, using dynamic planning and predictive tools, can evaluate each and every option, even tweaking individual parameters in the model to determine the most profitable and sustainable scenario for the organization.

At Mary’s Manufacturing, the finance team spends most of their time doing manual consolidation and reconciliation of planning data. This task repeats every time a source plan changes to ensure that financial planning reflects any changes in sales, operational, and HR planning. However, with dynamic planning and forecasting capabilities, the finance team at Stephanie’s Software can add value to the organization by spending the majority of their time in analysis of all potential scenarios. The finance team thus becomes a valuable member of the executive team that can provide answers to “what if” questions immediately, even in an executive boardroom situation.

For more information about solutions that support planning processes, please visit:

Follow SAP Finance online: @SAPFinance (Twitter)  | LinkedIn | FacebookYouTube

Comments

Let’s block ads! (Why?)

Digitalist Magazine