Michelle Crapo — Member of the Month, December 2017

Well, here we are — near the end of a rather uneventful year. And it’s time to name the final Member of the Month for 2017.

Member of the Month recipients are contributors who have an impact on the community. And since I wanted to end 2017 with a bang, I wanted to recognize a member whose impact made one of the biggest bangs in 2017 as well.

After careful consideration, the candidate seemed obvious.

Michelle Crapo.

In early October, Michelle published a blog post titled “The SAP Community is Sick, Tired, and Quickly losing people.” As you might have guessed, it was hardly a love letter to SAP and the new community platform.

Its influence was immediate. In summing up so many of the frustrations frequently voiced by members, Michelle gave the current state of the community a new level of visibility — generating buzz on social media, earning hundreds of likes, and encouraging conversation with dozens of comments. Even SAP CEO Bill McDermott chimed in with a response to Michelle.

That accomplishment alone might have been the ultimate mic drop. Michelle could have claimed victory and made a triumphant exit. But to her credit, Michelle didn’t stop with that blog post. She published more posts, and as she did, her intention became clearer: While Michelle was unhappy with the platform (as so many members are), her goal wasn’t just to knock it. She wanted to make a difference. She asked questions meant to drive dialogue about improvements. She acknowledged improvements when they occurred. And she pledged personal actions to make things better. She challenged others to do the same.

Michelle’s posts exemplify tough love — an outcry from a member who won’t let SAP Community off the hook, because the community is important to her, and rather than give up, she’ll push to see it return to former glories.

Certainly, I can find other posts from authors attempting to do the same — calling out the shortcomings of SAP Community and rallying for the good ol’ days. But few have drawn the same attention as Michelle’s. Also, even at their harshest, Michelle’s words often feel positive. While so many critical posts seep cynicism, hers carry a message of hope — that the community can save the community. I can only hope that 2018 gives her a reason to believe in a brighter year ahead.

And with that, it gives me great honor to introduce perhaps my most controversial choice for Member of the Month yet: Michelle Crapo.

Michelle, congratulations!

Thank you for the congratulations. It’s amazing being the Member of the Month! This is just one of those things that comes along unexpectedly and just makes your day…month…year.

Happy to hear it! As my lengthy intro implies, we sure have plenty to talk about. But I’m going to start with the basics. Your profile page doesn’t provide any information about your career, your job, your areas of focus. Would you mind sharing some information about your professional experience?

I have to laugh a bit as I answer you. I sound like a person of mystery, don’t I? Really, I’m not. My job is really…well…fun. I’m not a traditional employee. I get to work from home, and that makes me happy. My spare bedroom is my office. I work for Furst-Mcness. This is a relatively small company. It allows me to do many things. I have done ABAP, configuration, project management, design, and testing. I even got to play with BASIS a little! How cool is that?

I have experience in a variety of things. I’ve been working with SAP for just over twenty years, but never for SAP. I have held a lot of different jobs with a lot of different titles. Project manager, business analyst, ABAP developer, Sr. SAP developer, and even a consultant for a short while. Currently I believe my title is simply ABAP Developer.

I have played on many different platforms. I’ve done upgrades, implementation, and slept in a sleeping bag at work. I did work with 6.0, but lately I’ve been playing on 4.6C. Oh, boy, does that create some challenges as things I think are included are not.

Michelle says: “I get to work from home, and that makes me happy.” The view helps.

When and why did you join the SAP Community?

Would you believe — close to twenty years ago. I first started seeking answers on the web. That led me to a different site. I enjoyed that one until it got a bit cluttered with advertisement. Then I found the SAP Community.

Can I call it SDN? That’s what it was. SAP has a fun time playing with the names of things. Anyway — I found a whole new world. So many people that knew so much more than I. I sat back and read the answers that others posted. I kept to the background. I was intimidated. I gradually learned that everyone on the community was open, answered questions, and never made me feel bad. Then I became my teams unofficial “asker.” If anyone had a question we couldn’t figure out — I posted the question. People were all very nice.

So back to the question — why? The quick feedback on questions, the great blogs, but most of all – the interesting people. I loved to read about the things they were doing. The rants were fun to read as well.

We’ve touched upon your blog posts, and we’ll definitely talk about those before the interview is over. But beyond those blog posts, what other things do you do in the community?

Not as much as I’d like. I am back after around two years? Anyway a long time. So part of my challenge is learning how to navigate, tag, and understand the changes.

I do answer questions. I do have a great deal of fun reading and commenting on the blogs I’ve read. I love to try to connect with the people writing a blog. When I first started with SDN, I wrote a blog that generated so many comments. I loved reading each one. I also made some great friends from that. They are still great friends even though a lot of them have moved away from SAP. So I hope by commenting on the ones I find interesting it will generate some discussion or just let people know that we are reading their blogs.

I have tried to ask for some improvements — but again, I’m just learning my way around the platform.

And I have no idea what is in the community really. I love the open courses, but was told those aren’t really in the community. I like the free trials — I haven’t had time to download one yet — but again was told that isn’t part of the community.

Michelle enjoys playing with her “lap dogs” (all over sixty pounds!) in her free time.

How about outside the community? Do you have any hobbies or anything you like to do in your free time?

Are you kidding? Of course!

Probably my number one thing to do is to play with my dogs. I love to go for walks behind our house. Inside, we have a great time too. My dogs are all over sixty pounds. The largest is 125, and, yes, they are all lap dogs. I guess I should say I have three of them! My house is fairly small — and seems smaller with them running about. My newest addition is around-sixty pounds of pure puppy. She’s only around nine months old, but she still is bounding around. She keeps us all on our toes.

I ride horses. I have three real horses in my backyard. I also have a pony and two miniature horses. Really in the winter I don’t ride much anymore but I used to. I used to have a great time jumping them as well. These days my husband has convinced me to slow down a bit.

In the winter, my favorite thing to do is curl up with a good book. What type you ask? Well certainly not a technical one. I read science fiction and romance. One of my favorite authors in Stephen King. However, my favorite book is “A Wrinkle in Time.” I read it in fourth grade — yes, that was a long time ago — and still enjoy it. I have a hard cover copy of the book, but I also have it on my Kindle.

OK, I guess I avoided the question long enough. So here goes… What prompted you to write “The SAP Community is Sick, Tired, and Quickly losing people”?

Well crazy me — I was one of the quiet majority that left. I just didn’t have the time to try to work through all the issues, and felt like no one was listening. One day I decided — I have some time and I was going to speak at TechEd so I had to write about that — at least.

So I wrote some blogs. I got some response. But not as much as usual. Not even as many people that I could debate.

I thought, OK, I’ve just written boring blogs that I probably put in the wrong place anyway. So I looked at the other blogs. Um…I looked for some blogs in ABAP that were within the last month. I didn’t find anything. I dug around — I couldn’t see very many questions. I knew they all hadn’t been answered. I looked for some of my old “not in touch with” friends from the community. Not many.

Then I thought to myself — I’m sick of this! This is the one site for us! The users, the technical people, the businesspeople — but where were they? I could see SAP people. And that was a good thing. Heck, we had authors answering questions. Very cool! But there weren’t many people asking questions. There weren’t many people posting at all.

Oh, boy, I wasn’t the only one who left. There weren’t just a few that left. I was in the majority! That wasn’t good. I thought back on how huge the community was. Then I thought back about how even though it was huge, it seemed like a fun place to be. We had questions, contests, blogs about nothing serious, blogs about a new way to do something, blogs about whether it should be a blog or a wiki. Now I couldn’t find the blogs, the code snippets, the wikis, or anything at all. Nothing was very active. That actually made me sad. Then it made me mad. Was no one listening? I had mostly left two years ago. Hadn’t anything gotten better? I could see other people begging for change. But was anything happening? So I sat down and typed. I didn’t correct anything and I posted.

Michelle’s experience with her SAP TechEd blogs led her to write her blogs about the community.

Were you surprised by the reaction?

Yes! I didn’t expect the response. One of the responders in the community suggested that I cross-post it in my Linkedin account and see what would happen. I really wish everyone could see all the replies. My Linkedin had a ton of them! Almost all agreed. Something I said must have resonated with them. I found myself addicted to looking at both my Linkedin and my community accounts. I had to see what people were thinking and try to keep the comments moving. As I was doing that more and more people were commenting. Surprise! I just wanted to rant a bit and maybe get people motivated towards change.

How did you feel about getting a response from Bill McDermott? Also surprised?

Shocked is more like it. It was an amazing thing. I stared at it a good long time, and then thought — it can’t really be him. It was. Then I crossed my fingers and hoped it would generate some good changes.

Your blog posts list several of the things you dislike about the new community. Is there one thing in particular that really bothers you — to the point if it changed, it would be a huge improvement in your eyes?

I have to pick one? I’m kidding — well…kind of. If I could change one thing, it would be an easier way to navigate around in the system. I think someone got crazy with all of the options available. (Getting rid of some of the marketing would help with that.)

I know this might be a loaded question, so please be honest. No pressure! Is there anything that strikes you as good or going in the right direction in SAP Community?

Again I have to pick one? Yes, there are many things going in the right direction. I strongly feel that bringing back the Strategic Advisory Council will be a huge help. I’d love to see what is going on with that. Hint. Hint. Someone needs a blog.

I love the Features Requested and Issues Reported page. But it seems a bit outdated. Another problem keeping all these pages updated.

With the Strategic Advisory Council, we had to educate a people a bit about what that is — hence, the blog post about the SAC. (Thanks for commenting on that, by the way.) As a next step, I’m hoping to get out some information about a major project that involved SAC members. Sorry, I know that’s a tease, but I learned the hard way not to tip my hand too much.

As for the Features Requested and Issues Reported page — I’m glad that you like it, but you’re right…it’s outdated. I’m actually responsible for it, and I do plan to go through it and clean it up with help from the SAP Community Experience team.

Speaking of my to-do list…I’d like to end by talking about a similar topic. This is the time of year when people start thinking about New Year’s resolutions. If I resolved to do anything differently for SAP Community in 2018, what would you suggest?

If you resolve to do anything differently? Well you have to pick that out. Pick one thing. I’m sure you’ll find it out there in the complaints. There is something that will make you want to shout out that you have made it better! Honestly, I think I can see things slowly changing. Oh, no — did I just say something positive? I did. A hint from me — simplify. A boss once told me: “Just because you can do it that way doesn’t mean you have to.”

If I resolve to do anything differently — it’s to continue my own journey down the ever-changing roads of the community. I’d like to meet more, learn more, about each person I come across. Not possible — I know. But it is fun.

Sounds like a good plan for 2018 — for both of us! Before I let you go, I wanted you to know that ever since you began posting about the new platform, I’ve wanted to talk to you. I’m glad I finally had a chance. I appreciate you taking the time to chat with me — and for taking the time to do your part to the improve SAP Community. You truly deserve the Member of the Month recognition, and I look forward to you continuing to keep us honest in the New Year!

  http://bit.ly/2CnIr5E #SAP #SAPCloud #AI

AS2 Protocol for Business Data Interchange via HTTP, Part 2

The main idea of the AS2 protocol defined in the RFC 4130 is how we can exchange structured business data securely using the HTTP transfer protocol. In part one of this AS2 article series, we looked at an overview of the AS2 (Applicability Statement 2) protocol and why it wins over the other B2B protocols. We, the developers of the B2B integration platform AS2Gateway, have been working with AS2 protocol for quite some time now, and today, in this article, we hope to give some insight on how an AS2 message is composed using S/MIME format with a few lines of Java code.

Without further ado, let’s jump right in. The basic structure of an AS2 message consists of a MIME format inside an HTTP message with a few additional specific AS2 headers. The final structure of the composed AS2 message will be as follows. In this article, we’ll go in a step-by-step manner to create the final encrypted HTTP body starting from a document. https://goo.gl/afzbFf #DataIntegration #ML

Native HANA Free trial set up with SHINE content – SP 12

SAP native HANA application has been rapidly changing or improving in the recent years, in terms of database features, application developments, ETL objects and UI developments etc. In order to catch up with those changes there has to be a continuous learning process involved. For this purpose, there are several Open SAP courses, HANA academy and documentation available on SAP Website. However, I feel it is really very important to try developing the new objects in system to understand better. for that, SAP offered a free HANA trial system for native HANA developments complemented with lots of demo objects with data.

In this document, I provide detailed and updated information on how to set up free trial system on your personal computer with ready made demo content provided by SAP.  It is advisable to refer the demo content first, then start building the objects accordingly to speed up your learning process.

Note: Free trial HANA system and SHINE demo content is for Native HANA objects only, not for S/4 HANA or BW/4 HANA object development.  It is provided with Version 1.0 SP 12.

Also, system set up and demo content is on XS classical engine, will cover XS Advanced in the next document.

This document is divided into 2 sections,  System set up and use of demo content as reference.

1. System Set up: 

a. Firstly, you will need to be a member in SAP community, mostly you all will have either PID or            SID, either of them can be used.  if not a member, then register as member in the below site.

https://www.sap.com/community/about/registration-and-profile.html

b. Register as Developer in SAP Cloud platform, below is site.  provide your member ID or your              email obtained in step 1 registration.

https://www.sap.com/developer/topics/cloud-platform.html

c. Upon registration, you are directed to SAP cloud platform, then Select Neo Trial, follow the next         steps to complete the subscription;

d. With that, Your account will be accessing the all the services provided with Trial version. Here             you can access Web IDE for UI5 application developments, also Java developments etc..                   however, in this document, I am focusing on HANA database object developments. So I will               choose Data base and schemas.

e. Create a new Data base, with the following details,  SYSTEM is the Administrator ID, with all              Privileges,  you will also enable SHINE user and provide user and password. So you got 2                  different accounts which you can use to log in to Database,  SYSTEM and p391642.

f. With this setup, data base is created,  you can try accessing the it using Web IDE platform link as        shown below,

It is a web based work bench to develop database objects, access catalog objects and also               security setup. It is an alternative to HANA studio or Eclipse. Further information on this, you               can find in help.sap.com

g. If you wanted to work on HANA Studio or Eclipse to develop database artifacts, you will have to          install these client application. I would suggest to use Eclipse over HANA studio, because                 Eclipse is open source, it can be download from internet, where as HANA studio is SAP                     software, need to install from SAP market place. Both work with same functionalities, so I will go         with eclipse.

Download Eclipse latest version, either Oxygen or Neon,

https://www.eclipse.org/downloads/download.php?file=/oomph/epp/oxygen/R/eclipse-inst-win64.exe

h. Open the application from your desktop,  install the  HANA software, use the navigation as,

go to help menu on top — > Select Install new software then provide the below and select all the         software as shown below and choose next and finish.

https://tools.hana.ondemand.com/neon

with that, you successfully installed Eclipse IDE on your computer. Then, you will need HANA            system to it.

i.  Choose, Either modeler prospective or Administration prospective,  Add cloud system as                     shown below.

j. You will provide the account name, SAP member ID and password which you got in step a.                 and choose next.

k. then select your data base and user name and password, here database user, which is either            SYSTEM or SHINE content user ID. Finish.

All set up done, you can start working on developing HANA objects either in Web workbench or         Eclipse.

2. Working on HANA development objects,

As part of Native HANA application development, several objects created, they are tables, stored        procedures, functions, calculation views, flow graphs, CDS artifacts, XSJS files, Odata service            files etc,  you can see the list in the development prospective, projects screen.

there are several HANA academy videos on how to create and work on these objects, also                 huge SAP documentation is available on web. Along with that, an demo content is prepared for           all of these objects in order to build an EPM application for business.  

You can access this content with the following navigation,

In the content  —  > sap — > hana — > demo content — > epm — > *    here you will see  several           calculation views, XSJS files, CDS objects, tables functions and procedures are provided in               order to build Enterprise procurement model, with sales and purchasing data.

these models are built on EPM demo content tables, can be accessed in the schema,                         SAP_HANA_DEMO, there is sufficient amount of data in these tables, if you need more, you can        create as well.

Using these demo content tables, you can build the following native HANA objects to improve expertise on it,

* Calculation views, to model the data which can consumed for reporting and analytics.
* Stored Procedures and Functions;  to enhance the model with more custom SQL logic.
* CDS views: modeling with data persistence can be achieved.
* Flow graphs, to design an Data flow from one of demo tables to transform the data.
* XSJS files, to write the business control logic.
* UI5 files, to create front end application for business users.

for all of these application object developments, SHINE content has got models with example            data.

Conclusion: 

With that, you can work on HANA demo system to learn the concepts before working on                      customer production system, also in order to get a good overview on all Native HANA objects,            understanding SHINE content helps a lot to start creating objects in the HANA system. More              options on SHINE for XS Advanced, will be addressed in the next document. Also suggest to go        through the open SAP course on  SHINE content.

Thanks for reading.

  http://bit.ly/2DvvrdD #SAP #SAPCloud #AI

Setup of CPI iFlow with Custom Business Object

This blog post will explain how you can model your iFlow to insert and update data in your Custom Business Object. As a prerequisite you should read blog post https://blogs.sap.com/2017/05/12/usage-of-odata-service-of-custom-business-object/.

Overall iFlow

The iFlow consists of 8 steps for mass data coming in through a SOAP service and mapping to the OData service of a custom business object (CBO). Each step is explained in detail.

The HTTP session handling is set to “On Integration Flow” to ensure that the same session is used for all calls to SAP Hybris Marketing instead of creating multiple sessions. This increases performance:

In this example the payload of an incoming SOAP Service looks like this: 6 EXTERNAL Max Mustermann 7 EXTERNAL Ellen Musterfrau 8 EXTERNAL John Doe

Step 1: Iterating Splitter to package mass data into chunks of 1000

In order to not overload the CBO backend system the data is handled in chunks of 1000. An iterating splitter is used for that purpose. The incoming payload is split at the token :

After the split the payload looks like this: 6 EXTERNAL Max Mustermann 7 EXTERNAL Ellen Musterfrau 8 EXTERNAL John Doe

Step 2: Process Call to Local Integration Process “Enrich SAP_UUID”

To update or delete an entry, the SAP_UUID as technical key is needed. Therefore for each entry the SAP_UUID is enriched in a local integration process, if the entry already exists in the CBO.

Step 3: Iterating Splitter to handle each entry in a seperate call

Currently CPI does not support batch processing for OData GET calls. Therefore each entry must be handled seperatly. But they can be processed in parallel. The splitting is again done at the Token but this time without grouping:

Step 4: Content Modifier to save the semantic key in properties

The semantic keys of the OData service of the CBO are ContactId and IdOrigin. In the Content Modifier the values are saved in properties for usage in step 5:

Step 5: Content Enricher to read the technical key SAP_UUID

A Get request is made to the SAP Hybris Marketing system to get the technical key SAP_UUID. The properties ContactId and IdOrigin are given over in the filter expression. As the content enricher needs a matching field from the existing payload and from the receiving payload, also the ContactID is requested:

In the Content Enricher properties the result is then mapped to the current payload:

If a SAP_UUID is returned by SAP Hybris Marketing, the payload looks as follows after the content enrichment: 7 00163e35-616b-1ed7-b5b9-662f3d264ba0 7 EXTERNAL Ellen Musterfrau

If no SAP_UUID is returned, the payload looks like this: 8 EXTERNAL John Doe

Step 6: Mapping After Enrichment

As the payload looks different after the content enrichment for new and changed objects, a mapping is introduced that maps both cases to the same structure. As result structure already the OData structure of the CBO is used. The fields ContactID, IDOrigin, Field1 and Field 2 can directly be assigned:

For the field SAP_UUID a complex expression is build. It is checked if the tag SAP_UUID exists in the incoming payload. In this case the SAP_UUID is taken over. In case the tag does not exist, an empty constant is written to the target SAP_UUID tag:

Step 7: Gathering of SAP_UUID Enrichment Calls

In the last step of the local integration process all calls are gathered and enhanced by an overall tag . The overall tag is needed by CPI for further XML processing.

After the gathering the payload looks like this: 00163e0c-0f31-1ee7-8eae-19ed448a1944 6 EXTERNAL Max Mustermann 00163e35-616b-1ed7-b5b9-662f3d264ba0 7 EXTERNAL Ellen Musterfrau 8 EXTERNAL John Doe

Step 8: Map request chunk to OData Batch Processing

The last step of the whole integration flow maps a chunk of 1000 to batch processing of the CBO OData service. The tag is mapped to the tag . The target tag gets an empty constant assigned. The tag is mapped to the tag . The target tags and have a complex expression based if the entry needs to be created or updated. The target tag is not needed and therefore disabled. The target tags and get an empty constant. The target tag has a complex expression. The fields ContactID, IDOrigin, Field1 and Field2 are mapped directly from source to target.

The target tag can either be POST for a new entry or PUT for a changed entry. If the source tag is empty (SAP_UUID equals string ”) then the constant POST is assigned to tag . Else the constant PUT is assigned:

The target tag is only needed for changed entries. Therefore the complex expression is as follows: If the source tag is empty (SAP_UUID equals string ”), revise the result (Not). Only if the revised result is true, create the tag . The creation of the tag is created by concatenation of constant value YY1_HCI_ID_ID_ORIGIN(guid’ with source SAP_UUID and next concatenation to constant value ‘):

The complex expression for the target tag is similar to the target tag . Only if the source SAP_UUID is filled the target tag is created:

The payload now looks as follows: PUT YY1_HCI_ID_ID_ORIGIN(guid’00163e0c-0f31-1ee7-8eae-19ed448a1944’) 00163e0c-0f31-1ee7-8eae-19ed448a1944 6 EXTERNAL Max Mustermann PUT YY1_HCI_ID_ID_ORIGIN(guid’00163e35-616b-1ed7-b5b9-662f3d264ba0’) 00163e35-616b-1ed7-b5b9-662f3d264ba0 7 EXTERNAL Ellen Musterfrau POST 8 EXTERNAL John Doe

Batch requests to an OData service are always send as a POST request. Therefore the Receiver Channel needs to be setup like that:

The timeout is configured with 5 minutes as this is the normal runtime in SAP Hybris Marketing system.

  http://bit.ly/2Cpbpm1 #SAP #SAPCloud #AI