Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Miro tcode copy to ZMIRO

Former Member
0 Kudos

Hi,


I got a requirement for which i need to copy MIRO to ZMIRO.

I have copied all the includes, screens to a new function group "ZMR1M" and added the new tcode "ZZMIRO" to T169 and T169F table.

Even after doing all these things i am getting error "Program " " not found.".

Trigger Location of Runtime Error

    Program                                 SAPLMR1M

    Include                                 LMR1MO1W

    Row                                     22

    Module type                             (MODULE PBO)

    Module Name                             MOVE_DATA_TO_TAX

Request your help.

Regards,

Pankaj

1 ACCEPTED SOLUTION

matt
Active Contributor
0 Kudos

No. You don't have a requirement to copy MIRO. Copying MIRO is your proposed solution for the business requirement.

Copying standard SAP objects is not only sometimes difficult, as you have found, but also

1. You don't get the benefit of any fixes or enhancements to the original

2. Is equivalent to modifying data in standard SAP tables directly with all the support consequences of that

3.In 99.9% of cases, not necessary, as the BUSINESS requirement can be achived through user exits, enhancements, or, in worst case, by changing the standard object.

Changing the standard object is vastly preferable to making a copy.

Now. What is the business requirement? What are you attempting to achieve with your copy?

15 REPLIES 15

matt
Active Contributor
0 Kudos

No. You don't have a requirement to copy MIRO. Copying MIRO is your proposed solution for the business requirement.

Copying standard SAP objects is not only sometimes difficult, as you have found, but also

1. You don't get the benefit of any fixes or enhancements to the original

2. Is equivalent to modifying data in standard SAP tables directly with all the support consequences of that

3.In 99.9% of cases, not necessary, as the BUSINESS requirement can be achived through user exits, enhancements, or, in worst case, by changing the standard object.

Changing the standard object is vastly preferable to making a copy.

Now. What is the business requirement? What are you attempting to achieve with your copy?

Former Member
0 Kudos

Hi Matthew,

I totally agree with you.

My Business  requirement is:

http://scn.sap.com/thread/3655133

I analyzed standard program. in that, in the PAI module of screen 6310, there is a module "module berechne_position". In this module, value of invoice amount( rbwwr ) is getting changed.

Now my requirement is not only putting vendor amount into invoice amount field but i have to add some columns also. MRP, rate difference columns are also required on that screen. So my functional colleagues suggested me to make a copy and do the required changes.

Request your help.

Regards,

Pankaj

matt
Active Contributor
0 Kudos

I can't help you with the specifics, since I do not know MIRO. However,copying and making adjustments is always the worst way of dealing with requirements, and your functional colleagues need to understand this. The cost of copied programs can be immense.

Maybe someone with expertise on MIRO here will be able to assist you.

0 Kudos

Hi Pankaj,

There are few BADIs to validate / manipulate the data.

MRM_HEADER_CHECK - Checks on document header data.

I had used this BADI to set ZLSPR (payment block indicator) using  call stack [(PROGRAM NAME)Internal table].

. May be you could also try if this badi matches your requirement.

INVOICE_UPDATE:

This BADI will be triggered before the invoice data is saved to database.

Check if the BADIs/Customer Exit/BTE available for MIRO could satisfy your requirement.

Thanks,

Karthikeyan

Former Member
0 Kudos

Thanks Matthew for your response..

will discuss this with my team members and revert to you.

Thanks..

Former Member
0 Kudos

Hi Karthikeyan,

Yes i agree, there may be few enhancements available for this kind of requirement. I'll check and get back to you..

But again, my team doesn't want to play with this complex transaction...   so they are saying to create a copy and then do the required changes..

Thanks for your response...

0 Kudos

Hi Pankal,

Unless you are working with a ECC 5.0 or earlier version you always can use an implicit enhancement as Matthew has suggested.

Regards.

JCD

matt
Active Contributor
0 Kudos

Go back to them and explain that copying this complex transaction is more risky than changing the original. It is in fact more likely to screw up their data, and with no comeback with SAP.

Seriously, this is well discussed globally. It is a STUPID thing to do, and can actively HARM the business.

I've been working in SAP for 17 years and I know from experience that this kind of idiocy - no, I'm not mincing words, it is short-sighted ignorance and idiocy - costs businesses a huge amount over the years

When your ZMIRO becomes critical to the business and then it stops working after an upgrade it will cost a fortune to fix. Not just the cost to reengineer, but also the potential cost of not being able to process invoices any more. Or,worst case, it still works, but gradually introduces errors into your database.

Seen it, fixed it and earned $$$$$$ out of the processes. I hope the people who recommend it are still working there when the horror starts.

If someone were to tell me to do this, I'd quit. Full stop.

paul_bakker2
Active Contributor
0 Kudos

Listen to what the man said.

Pankaj, don't take technical advice from functional consultants. They don't know.

cheers

Paul

Former Member
0 Kudos

Hello There,

I see we have a thread of good humor. Regarding the requirement


I am slightly puzzled, after the option to reduce the invoice amount has been chosen,

the fields circled in blue are "Invoice Amount according to Vendor" and "Quantity according to Vendor".

This is used to enter the amount and quantity of the incorrect invoice (so in other words the vendor amount and quantity) and by default populated by the data from the PO line item.

=> The vendor amount (that is on the invoice paper) is entered here by the accountant (or a machine).

So, what is meant by the sentence "but my requirement is to have vendor amount in this field."... ?

If the requirement is to populate automatically the values from the vendor invoice coming from a scan or similar, please use some enhancement techniques (I will not say a word, because as a functional consultant...

Cheers,

Alex

matt
Active Contributor
0 Kudos

The trick is to only take advice from functional consultants when they're right.

Something I've observed happening over the years is that functional consultants have tended to move away from specs that specify the requirement, to specifying the solution to be applied. I think this is a direct consequence of the drive to offshore. The guys I work with understand that I only accept specs scribbled on the back of a cigarette carton - I'm old school developer.

0 Kudos

Oh I agree - they give plenty of good advice. But it's not their place to give direction on technical issues.

Their job is to tell us what the solution should do, not how it does it.

As in Pankaj's case above, developers should feel free to build the solution as they see fit - as long as it meets the specified functionality.

cheers

Paul

0 Kudos

Hello Matthew,

I tend to agree, although, in my opinion, the size of a cigarette carton may leave too much space for creativity from the ABAP side like copying half of SAP_APPL to kill a fly ... , it depends on who is going to code in the end.

Personally, I try to have 1 or 2 sessions with the developer, FS -> lecture -> technical proposal -> discussion of pros/cons/high-level program design -> validation !

Alex

matt
Active Contributor
0 Kudos

I only all developers and functional consultants were competent, everything would be so much easier.

0 Kudos

Eheh, certainly. So much less fun however !!  My preferred pieces of code are :

1) nested loops

2) wait statements

We are drifting away from helping the OP, though.