When it comes to Service, ECC or CRM?

A couple months ago, I was emailing with a client that I helped blueprint their service.  Well, about 18 months went by, and they still hadn’t started the project (glad I didn’t wait around for that gig).  I emailed back and forth to see how things were going, and he asked me my opinion on CRM service.  I was straightforward with him.  I’m not a fan.  Naturally, since they were thinking of implementing it, he wanted to know why.  Well, here’s my opinion…

  1. Implementing CRM is no walk in the park.  You need hardware, software, licensing, consultants to teach you how to configure it and keep it running.  This all takes time and a lot of money.  We’re talking potentially int he millions, depending on how long it takes and how expensive you consultants are.  And, don’t forget training all your people to manage and use the new system.
  2. Middleware.  This is one of my least favorite aspects of dealing with CRM.  Inevitably, things always get lost in the middleware.  Idocs get frozen, some strange piece of data crashes a bunch of records, and then you need someone to try to figure out what happened.  Was is CRM?  was it ECC?  was it a network issue…  who knows?!?
  3. Functionality, I just haven’t seen enough in CRM to make me believe it can handle all of the pieces in service.  I confess, I don’t know every business model, and I believe there are some legitimate uses for CRM.  My issue is always that you need a lot of ECC to handle the backend of service.  Even if you are only dealing with the field, you still need inventory, you need scheduling and MRP, and all of these pieces are in the core ECC.  When you deal with CRM, now you either need to replicate a lot of data, or you have to spend time in two systems to really get the full picture.

Now, admittedly, I’m biased.  I like ECC (well as much as anyone can like a computer system), and I think it has a solid foundation.  The only thing really missing, IMHO, is a nicer interface.  This is obviously where CRM beats ECC hands down.  But, an interface can be built.  Between Fiori, personas, and UI5, I can build the same look and feel in ECC as I can in CRM, and I didn’t have to pay the 6 or 7 figure price tag to make it happen.  Want to see it action?  email me and I’ll give you a demo of just how nice you can make service in ECC.  If there’s functionality in CRM that you need, talk to me first.  I bet I can deliver it for a fraction of the cost of implementing CRM.

mpiehl@gojaveLLin.com

Thanks for reading,

An Interesting Tangent, Trying to get rid of Cable

Well, my most recent distraction has been trying to see if I can get rid of cable.  Unfortunately, this comes with a lot of logistics that I need to prove out first, partially for myself, and mostly for my family 🙂  If you are anything like me, your cable + internet bill is usually around the $200/month (or more).  Now, the biggest thing I complain about is that I’m paying well over a $100/month plus equipment rental fees, and in reality, I watch about 10 of the 200+ available channels.  I’ve had more and more friends do this, so I thought I’d start to see what I could do.

First off, here’s a great post with tons of information that I’ve been using to get started.

https://www.groundedreason.com/cable-tv-alternatives/

Of course, things are never as easy as I would like.  My first issue was that my uverse modem was old, so my speeds and connections were average at best.  So after an hour or more with AT&T, I finally get a new router shipped to me.  This was great, finally signal strength for the whole house, AC coverage, etc.  Well, needless to say, that caused me tons of headaches for my SAP servers.  A new router means all different settings.  I think I finally have things working on that front, but starting yesterday, the internet keeps dropping.  I have wi-fi, just no internet.  As soon as I restart it, it works again.  So great, I need to restart my router multiple times per day =(

the next big issue is that I decided to get rid of the wireless uverse box upstairs in my office.  So far, all I’ve used that for is the Ethernet ports.  Of course, that lead me down a whole different rabbit whole of how to get signal to all my computers upstairs.  I’m wireless on most of the devices, but the servers don’t really run that well (and one won’t run at all unless it’s hardwired).   So I think I’m going to go with a wi-fi extender with an ethernet port, then connect that to my switch so all my servers have connectivity.

NETGEAR AC750 Dual Band Gigabit Wi-Fi Range Extender (EX6100) 

if anyone has experience with doing this, I’d love to hear from you.  The sheer number of options are mind boggling, so a lot of my experiment is trial and error.

Next up, my Roku and antenna are on the way…  so I’ll have more to talk about after I start experimenting with those.

Thanks for reading,

 

Getting some ROI out of that big investment

Yesterday, I started talking about the huge investment of an ERP system.  The biggest point I hope I got across, is that the cost is very high, and if you don’t use effectively, the cost is MUCH higher.  I know the service world very well, but I guarantee, it’s the same everywhere.  The smaller you are, the more hats you have to wear.  This means that you need every advantage you can get to keep things running smoothly.  Often, the people down in the trenches aren’t “consulted” when a new computer system is being implemented.  They usually get the memo when the consultants start showing up to “configure the system”.  This means they often have to live with the best the consultant can give them.

All of these factors are why I started making my own applications for service management.  Working in many small to midsize firms, made me quickly realize that 2 people can’t enter in all the data required for a repair and still do their normal “day job”.  In general, the service groups are some of the best I have met in terms of getting the job done no matter what.  The problem is that often they end up working outside the system, just get everything done.  So, now this big expensive system that is supposed to capture all this data is being supplemented by some Excel files, and notebooks in the manager’s office.  Try pulling those reports!!!

The best answer I came up with was a way to streamline the process.  Make data entry as easy and straightforward as possible.  That meant some programming work.  I started down the path almost 10 years ago (at least that’s when the first idea started).  Granted, there was a lot of ramp up time, learning curves to get past, systems to set up…  But about 3 years ago, things got serious.  Proximity became the dashboard for the repair depot and field service.  Giving the managers a single spot to run the entire shop from, and giving technicians a simplified yet more complete view of their jobs.  Renovation did the same thing for the call center and customer service.  Creating applications to make lives easier has a much broader impact than I expected.  It literally starts giving ROI to that big expensive ERP system.  Instead of jumping from transaction to transaction or hiring a temp to transcribe paper into SAP, you get more info than you ever had before and the ERP finally becomes a help, not a hindrance.  Am I saying you’ll instantly love SAP with all it’s rigorous checks and painstaking processes?  maybe not…  but at least you can start recognize some of the value that everyone promised when the purchasing decision was made 🙂

thanks for reading,

Big Software price tags, little returns???

In my years consulting, I’ve often found that so often someone in an organization gets “sold” on a piece of software that is going to revolutionize their business.  It could be a manager, a director or a CEO.  Inevitably, that software comes with a huge price tag, not just for the licensing, but for the implementation, the maintenance, etc.  At the end of the day, you can feel like your leveraging your entire business, just to pay for the software you will use to run it.

Now, being the SAP world for as long as I have, I’ve come to understand how expensive the implementation is for any ERP software.  Trying to find a good set of people that can make the software match your business is a HUGE challenge.  I’ve been lucky to work with a lot of good companies.  And there are a few that standout in my mind that should never have implemented SAP.  The reason I say that is because they were willing to invest in the people that are required to keep a system up and running.  The bigger and more flexible a system is, the more permanent resources (or permanent consultants) you need to keep it running day to day.  And this doesn’t even cover all the areas where configuration can’t make your life any easier.  SAP is clearly a German built piece of software, and the Germans are very good at processes.  However, must of the design is built around having a lot of people doing small portions of the data entry.  The smaller your business is, the less likely you are to have 5 people entering data, but rather 1 person doing it all.  And while, it is “doable” to have a single person creating a help desk ticket, creating the sales order and even creating the delivery to receive the goods in, that person is likely responsible for a lot more things than just data entry.

I saw this so often working in the service world.  There were 10 people to do everything.  That meant taking the customer’s call, doing the pricing, fixing the units, purchasing parts to complete the repair, and handling their own shipping in and out of the units.  Now, if you have to do the  real work, and then do all of the computer work…  what do you think ends up happening???  Either, you need to hire people just do the data entry, or the quality of the data becomes pretty questionable.  Either the data is incomplete, because only required fields were populated, or the data might not get entered for 4 days…  I don’t know about you, but I have a hard time remember what was for dinner last night… now try to remember what job numbers you worked on, and for how long…  There might be paper in place, but now you spend time writing down what you did, just so you or someone else can punch it into the computer later.  Efficient???  hardly.

so what can you do to help???  I’ll continue this tomorrow.
thanks for reading,

UI5 – Updating a record

I’m feeling pretty excited right now.  I’ve been struggling for over a week to get a stupid POST or PUT statement to work in my UI5 application.  Let’s just say, there have been a lot of “color metaphors” said after the kids went to bed.  I’ve scoured google, tried so many things I can’t even remember them all.  Finally, today I was able to pull it all together.

First, the issue I was running into was that my GET services worked fine everywhere, but my PUT & POST would only work in a rest client.  For some reason, the X-CSRF-TOKEN was always undefined, so the service could never work.

component.js

I’m using an oDataModel, and I’m including this so you know what headers I’m setting.  It turns out that the Content-Type was my undoing.  I had been using application/atom+xml, as soon as I changed it to json, everything started working.

oModel.oHeaders = {
“DataServiceVersion”: “2.0”,
“MaxDataServiceVersion”: “2.0”,
“X-Requested-With”: “XMLHttpRequest”,
“Content-Type”: “application/json”,
}

detail.controller.js

I made a method to execute this upon save.  My next step is make it more dynamic, taking values from the screen, but step one was hardcoding.  /Dispatch is my service that does the PUT.

handleSaveButtonPress : function (evt) {
var oEntry = {};
oEntry.IOrderNumber = “1000001”;
oEntry.IPriority = “1”;
oEntry.ISequence = “25”;
var lServ = “/Dispatch(‘” + “1000001” + “‘)”;

var oModel = this.getView().getModel(“orders”);

jQuery.sap.require(“sap.ui.commons.MessageBox”);
oModel.update(lServ, oEntry, null, function(){
oModel.refresh();
sap.ui.commons.MessageBox.alert(“Success!”)
},function(){
sap.ui.commons.MessageBox.alert(“Error!”);
})

}

It all looks so simple now… but believe me, what a headache.  I hope this can help someone else in the future.

Thanks for reading,

ROI in service management – Making your products better

Continuing on in the series of how you can use Service management to improve your bottom line.  One of the best ways I can think of is making your products better.  Everyone who uses quality notifications knows the value of this, but for some reason, service notifications are often overlooked for this purposes.

The whole key to this is collecting enough data to categorize each notification.  The best way, in my opinion is using the many different catalogs to classify what is going on.  Just as a recap, depending on what fields you have available, you can have as many as 5 different catalogs available within a single notification.  You can even use the same catalog multiple times for things like causes.  Why do you care?

Because you can do reporting against these values to find trends in your products.  If you notice that 20 notifications come in a week for the same product, all stating that the product was damaged in transit, well, that should be a pretty big flag to review your packaging and your carrier to review what the hell is going on.  Maybe you got a bad batch of packaging materials, maybe you recently made a “cost saving” change to a different vendor…  regardless, you have an obvious set of data that you should be reviewing.

You may also simply find a pattern in your customers “mis-using” your products.  This might give your marketing/legal group something to include your literature stating in certain terms, product not to be used in the rain, or product should not be used for longer than 3 hours without shut down.  Doesn’t matter, but the data is there if you can collect.  This should be reason enough to train your call center to collect this every time.

Now, there is another way to capture information that is very valuable, and often more flexible.  You can use classification, along with multiple value characteristics allowing you to select as many options as apply.  This has the potential to give your organization ALL the data they could use.  SAP provides standard reporting using CL30N.  But if you’d like even more data, check out our out of the box service management dashboard.

Thanks for reading,

UI5 – Reading the context on the detail page

I wanted to share this breakthrough I finally made.  I hope that maybe you won’t struggle with it as long as I did.  I spent a few hours digging and banging my head against the wall before I finally figured out what was going on.

If you haven’t been reading all my posts, I’ll give you the highlights of my UI5.  I’m following the split app, using XML for my views.  I have a master view, that contains a list of orders, and a detail view that shows the full order details.  My latest hurdle was that I had a list of notes associated with each order.  The challenge is that the entityset for the notes is separate from the orders, so that meant I needed a different service call.  The note entityset contains all notes for all orders, so I needed to filter it down before I display it on the detail view.

My challenge was that I didn’t realize that the context isn’t passed until after the onInit, onBeforeRender, and onAfterRender.  I finally found a post that gave me an idea to try.  So, let me walk you through it.

master.controller.js

I had a method called handleListSelect that is called when an order is clicked.

handleListSelect : function (evt) {
var context = evt.getParameter(“listItem”).getBindingContext(“orders”);
this.nav.to(“Detail”, context);
var detController = this.nav.getView().app.getPage(“Detail”).getController();
detController.updateNoteTableBinding();
},

I needed to add the last 2 lines, first to get the detail controller, then to call a method from the detail controller.

detail.controller.js

I added the following method

updateNoteTableBinding: function(){
var oContext = this.getView().getBindingContext(“orders”);
var property = oContext.getProperty(“OrderNumber”);

var filters = new Array();
var filterOrder = new sap.ui.model.Filter(“OrderNumber”, sap.ui.model.FilterOperator.EQ,property);
filters.push(filterOrder);
// update list binding
var list = this.getView().byId(“Notes”);
var binding = list.getBinding(“items”);
binding.filter(filters);
}

This was the first time that getBindingContext didn’t return undefined.  From there, I was able to add a simple filter to my list to show only the notes that I needed.

detail.view.xml

this part worked fine, but it’ll help you put it in context.  I used a simple table, and you can see that I define the items in the xml, hence the reason I am filtering the results.

<Table
id=”Notes”
headerText=”{i18n>NotesTableHeader}”
items=”{orders>/notes}” >
<columns>
<Column
width=”4em”
hAlign=”Center” >
<header><Label text=”Num” /></header>
</Column>
<Column
minScreenWidth=”Tablet”
demandPopin=”true”
hAlign=”Center” >
<header><Label text=”Create Date” /></header>
</Column>
<Column>
<header><Label text=”Title” /></header>
</Column>
<Column>
<header><Label text=”Note Text” /></header>
</Column>
</columns>
<ColumnListItem
type=”Navigation”
press=”handleLineItemPress” >
<cells>
<Text
text=”{orders>NoteNum}” />
<Text
text=”{
path:’orders>Crdat’, formatter:’sap.ui.jvs.ProxProdSup.util.Formatter.date’
}”/>
<Text
text=”{orders>Title}” />
<Text
text=”{orders>Line}” />
</cells>
</ColumnListItem>
</Table>

Thanks for reading,

What’s your biggest issue? What is your Company’s biggest issue?

As always, when I talk to my buddy Justin, he hits me with ideas that I wish I came up with myself.  We were talking recently about how the software business was doing, and as normal, I explained it’s not where I want it to be.  I’m still a very small company, struggling to find the right people to talk, thus it’s very hard to get my foot in the door.  Well, he took me backward, and asked if I knew I was in the right space?  was my idea legit today?  Do I need to thinking about a major pivot…

Well, naturally, I got a bit uncomfortable.  I’ve been working on this stuff for so long, making it better, adapting to the new technology, etc…  It’s hard to imagine giving all of that up.  But at the end of the day, I have to consider it if there really isn’t a market for what I’m offering.  So I explained that I was going to just attend some ASUG meetings, not sponsor, but rather just check them out and talk to people as peers, rather than as a vendor.

That’s when he hit me with 2 simple questions to ask people.

  1. What’s your biggest issue or complaint?  or Why are you here today?
  2. What’s your company’s biggest issue?  or Why did they send you here today?

These 2 simple questions have the potential to answer my question of where to go next.  Just by getting ideas of what people need or want, may tell me where my next pivot should go.  Or, it might open up a whole new line of business.  Don’t get me wrong, it’s scary to think of scrapping everything I’ve worked so hard on…  but it’s far scarier to keep throwing money at a solution that no one is willing to pay for.

I’d love to hear your answers to these questions…  please post below,

Thanks for reading,

UI5 – implementing a sort, $orderby

Well, even though I’ve been building services for a while, I realize there is a lot I don’t know.  Today (well, let’s be honest, for the past few days) I’ve been trying to figure out why my grouping and sorting just doesn’t work in my first UI5 application.  Well, it turns out that checking that nice little box as sortable in SEGW doesn’t really do anything for you.  I’m still checking it, but it doesn’t appear to be helping me at all.

https://scn.sap.com/thread/3746888

and especially

http://scn.sap.com/community/gateway/blog/2013/09/03/sap-gw–implement-a-better-orderby-for-cust-ext-class

finally opened my eyes.  It’s not something I was missing, just not something that the gateway does.  Which seems a little crazy.  They 2nd post above does a great job of showing me what needed to be done…  but let me add a bit of clarification.

First off, remember to make these changes in the _DPC_EXT class.  I know this obvious to most, but since I’m still learning, it took me a few trials.  next, once you get into the correct method:

/IWBEP/IF_MGW_APPL_SRV_RUNTIME~GET_ENTITYSET

You still need to do some data transformation.  this took me a bit, so let me add this here:

DATA output_get_entityset TYPE /jvs/cl_prx_prodsup_mpc=>tt_prxprodsupoutput.
FIELD-SYMBOLS:
<ls_data> TYPE ANY.

ASSIGN ER_ENTITYSET->TO <ls_data>.
output_get_entityset <ls_data>.

when you get into this method, you only have the abstract data of ER_ENTITYSET.  which can’t be used for much.  so I needed to transform it to be the same type as my table.  Then I could use the method provided in the post to do the sorting.  Then don’t forget to transform it back when you are done.

<ls_data> output_get_entityset.

I won’t pretend this is the best solution, but it is working for me, and I’m more than a little excited about that.  My UI5 journey is going slower than I expected, but not having a lot of experience with js or xml, it’s going alright.

thanks for reading,

Service ROI – Measure Productivity

Well, continuing in our theme of showing you what you can do with Service data to directly improve your bottom line, this is a great metric that most businesses care about, but maybe don’t realize all the different aspects available when it comes to measuring productivity.  Let me tell you what I mean by that.

Now of course, there is a obvious call center metric of calls taken, calls waiting, etc…  But in the service management world, you can also be looking at more of the post call analytics.  For example, how many of the calls are closed during the initial call.  You could be tracking this using the standard status.  The initial status of the notification is closed, it means that your call center agent was able to close the call on the phone, no additional follow up was needed.  The only thing better than this is if the customer didn’t have to call in the first place .

One of the other productivity metrics you can track is the number of notifications created by each SAP user.  You can be tracking how long each notification is kept open, simply by tracking the date/time stamp of the system status within the notification.  You can even keep track of who is filling in their notifications properly.  For example, if you use the catalogs, you can keep track of who is filling in this information.  This could lead you to additional training opportunities, especially if you employ temporary employees in your call center.  Losing this information could be costing you money. Anyway, the point of all of this is allowing you to see who your best call center employees are, and if you use temporary employees, they could be the people you entice to stay on full time, or the other end of the spectrum can be let go to bring in better people.

Now this same concept can be applied to your service shop.  You can be tracking all the different aspects of the service order, right down to the amount of time it takes to set a status, close an order, complete an operation or even just compare planned to actual.  All of this data is provided to you free of charge…  well, at least if you know where to get it from.  Now if you are looking for a great out of the box dashboard that will provide you with all this data and MUCH, MUCH more, check out Broadsword.

Thanks for reading,

Posts navigation

1 2 3 28 29 30 31 32 33 34 97 98 99
Scroll to top