SAP for Utilities Discussions
Connect with fellow SAP users to share best practices, troubleshoot challenges, and collaborate on building a sustainable energy future. Join the discussion.
cancel
Showing results for 
Search instead for 
Did you mean: 

FM to modify meter reading order consumption

Former Member
0 Kudos

Hi Experts,

I have a requirement to modiy meter reading order consumption (EL27) and release the meter reading to billing purpose during my customized FM.

Is there any standard FM or BAPI etc is preent for this purpose ?

Thanks and Regards,

Jasvinder Kumar

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hello Jasvinder,

Check FM ISU_S_METERDOCU_CHANGE in SE37.

It is used for change MR order/result.

Mathieu

View solution in original post

12 REPLIES 12

Former Member
0 Kudos

Hello Jasvinder,

Check FM ISU_S_METERDOCU_CHANGE in SE37.

It is used for change MR order/result.

Mathieu

0 Kudos

Hi Mathieu,

I have the folowing requirement. I need to automate the transaction EL27. Here I have to call the transaction el27 on the basis of MRID doc and then reset the current meter reading equal to the previous meter reading. And  then release the meter reading .

Can you please tell me How I can acheieve this requirement?

Also I have a question . Is there any FM which will calculate the meter reading by combing the fields for meter reading values before decimal and after decimal from table EABL?

Thanks and regards,

Jasvinder Kumar

0 Kudos

Hi Mathieu,

I have tried to use FM ISU_S_METERDOCU_CHANGE. I am using the FM ISU_S_METERDOCU_PROVIDE to fetch the data to pass in FM ISU_S_METERDOCU_CHANGE.

When I am executing this FM and Passing the new meter reading and status for my ablbelnr.

Its throwing exception 'Foregin lock'.

I have closed all the sessions and then again conducted the test. The same error comes. In SM12 there is no lock entry predent for it.

As we are trying to change one implausible meter reading ID, So it may be the case its not allowing us to change.

Is it  possible?

Please give your valuable reply .

Thanks and Regards,

jasvinder Kumar

0 Kudos

Hi,

You could try BDC. Maybe it would be easier for you.

Best Regards

Marcin Cholewczuk

0 Kudos

ISU_CONSUMPTION_DETERMINE is an internal function used to calculate the difference between two meter readings.

Stating the requirement is to 'Automate EL27' sounds horrible in my opinion. What is the actual goal?

it sounds like you simply want to estimate a zero consumption value to pass to billing in the event an implausible meter reading is loaded.

It might be better to implement your logic in a user exit perhaps.

I suggest:

EDMLELAH  IS-U: Compare Customer and IS-U Extrapolation Procedure

EDMLELDE  IS-U: Dependent validations based on user exit

EDMLELDV  IS-U: User exit - independent validations

EDMLELSV  IS_U: User Exit After Saving Meter Reading Results

Without knowing more about your specific requirements, its hard to suggest a detailed solution.

As a side note, my experience with implementing a Zero Estimate billing solution is it ends up being less desirable in the long term as the catch up billing of the missed consumption ends up annoying the end customers due to 'spikier billing'.

0 Kudos

Hi Daniel,

In this scenario, I have an implausible meter reading, where current meter reading is less then previous meter reading (negative consumption).

here, I have to reset the current MR  equal to previous MR and reset the MR status to plauisble from implauisble( in short release the flag).

So for this purpose I am using these two FM : ISU_S_METERDOCU_PROVIDE to fetch the data to pass in FM ISU_S_METERDOCU_CHANGE.

These FMS will make the changs in table EABL. Is that will help in this scenario?

Or when I am using the FM ISU_S_METERDOCU_CHANGE, Its throwing the exception of foregin lock.

Thanks and regards,

jasvinder Kumar

0 Kudos

Jasvinder

What's the scenario that's causing the implausible read?

Is it a dial-wrap (ie last read 9876 and new read is 1234), or was the last read overestimated and the new read is an actual?

If it's the latter, you can use the ISU_ASSESS workflow to automatically interpolate the previous estimate and the new read won't post as implausible.

Astrid

0 Kudos

Sounds like you need ABAP help for that question then.

0 Kudos

Hi Astrid,

I have a customer who can generate the power by their own. In case generation is more then consumption then we will get the negative consumption and SAP will make it implausible read. So in this case I need to do the consumption zero. In short make the current MR equal to prevoius MR. So I need help in this scenario.

Assess workflow is of no use.

Thanks and regards,

Jasvinder kumar

0 Kudos

I would either suggest:

  1. modeling the devices you are receiving the readings for, to have a Load & a Generation register, & store & Bill the Load & Generation readings separately.

  2. Backbilling which I am only familiar with as a concept sorry.

However if you are immovable, then user exit EDMLELSV with custom logic. IE read the most recent reading for the device you are entering the reading for & overwrite the received value where eabl-ablstat = 2

0 Kudos

Hi Daniel,

I have to use only single register devices for this approch . And when I am using the FM ISU_S_METERDOCU_CHANGE, Its throwing the exception of foregin lock.

Please suggest, what should I do ?

Thanks and Regards,

Jasvinder Kumar

0 Kudos

Apart from the fact the 'foreign lock' sounds like an ABAP problem, have you also considered the config around updating meter reading results via the bapi?

I have been toying around with BAPI_MTRREADDOC_UPLOAD since I'm now mildly interested in how to pull this off systematically.

Check your settings in Customizing for Meter Reading under Meter Reading Result -> Change -> Define Change Process for Meter Reading Data and change them if necessary.

Once this was correctly configured I am able to populate:

BAPI_MTRREADDOC_UPLOAD

     METERREADINGRESUPDATE

          MRIDNUMBER

          READINGRESULT

Where the result was implausible previously, it is modified to my desired result by the BAPI. That is the minimum to achieve what I believe is your desired outcome. I suggest this seems suitable & much better than calling an internal function module.