From Manufacturing Order to Product available

  • Marcio Rebello

    Marcio Rebello - 2012-04-09

    Dear all,

         Let me give you a picture of my situation: I created a Sales Order. The product has a BOM and a Manufacturing Workflow. Once I complete the Sales Order Adempiere creates a Manufacturing Order because the product is "Make-to-Order".  I can complete the Manufacturing Order and everything works fine until this point.

         The matter is that the only way I could find to make products available on the inventory was the Production Window, but that window has no connection with the Manufacturing Order, so I think that It must exist some way to make Adempiere create a quantity avaliable of a product when I complete the Manufacturing Order. Is there some way to do it? Isnt that natural that after the MO's completition the products in that order become avaliable?

    best regards,


  • Victor Perez Juarez

    Hi Marcio!

    When you complete the MO, this is ready to send shop floor, So if you want receipt or issue components you need use the option Manufacturing Management-> Discreet Manufacturing  -> Order Receipt & Issue. is necessary that the GL period is open for dates that you try make transactions.

    kind regards
    Victor Perez

  • Marcio Rebello

    Marcio Rebello - 2012-04-10

    Hi Victor,

        Thanks for the reply. I checked the Order Receipt & Issue and I think that this might work for us here. Unfortunately, It appears that I configured something wrong because when I try to do a "Only Receipt" Adempiere shows the following error on prompt line:

    Msg.translate: NOT found: M_Cost_ID

    Any ideas on what I missed?

    Anyway, your help was great and now I have something to work, when a I figure out whats wrong I'll post here.

    Thanks a lot!

  • Victor Perez Juarez

    Hi  Marcio!

    The Msg.translate: NOT found: M_Cost_ID  is only a warning, say that you have not the translation for this column in your language, bu this not have some effect in the functionality.

    My recommendation is that you try execute your example in english.

    kind regards

  • Marcio Rebello

    Marcio Rebello - 2012-04-11

    Hi Victor,

    I've tried to execute my example using a clean database in english, some other erros happened (like: "Costing method not supported - I"). I think that I missed some configuration step. Is there any online documentation on this topic you suggest me to read?

    One more thing, logged as System Administrator I was looking for the "Order Receipt & Issue" window to find out the code executed on the click of the OK button (in order to debug and understand better whats going on with that error), but I couldnt find that window. Can you help me finding it?

    Thank you for all your help.

    Best regards,


  • Marcio Rebello

    Marcio Rebello - 2012-04-13

    Hi Victor,

    Finally I found the code and understood what was happening. I will try to show everything I learned on the way so this topic may help other people (If you find something wrong, please correct me).

    First of all let me register here how I find the code: the "Order Receipt & Issue" window is not an Adempiere's Window, it is a customized Form, so I only found It with Eclipse's File Search using the String "*Order*Receipt*Issue*" and then I've found "public class VOrderReceiptIssue". That's the FormPanel.
    Just one more thing about this: That class is inside Libero's Jar, so Its necessary to download the project and reference It (by Adempiere's project) in order to debug It.

    (Hope the above information would help newbies like me)

    Finally, what caused the "NotSupported UDM - UOMorg.eevolution.model.impl.DefaultRoutingServiceImpl.getResourceBaseValue(int S_Resource_ID, I_AD_WF_Node node, I_PP_Cost_Collector cc):

    if (isTime(resourceUOM))
    BigDecimal duration = calculateDuration(node, cc);
    I_AD_Workflow wf = MWorkflow.get(ctx, node.getAD_Workflow_ID());
    BigDecimal convertedDuration = convertDuration(duration, wf.getDurationUnit(), resourceUOM);
    return convertedDuration;
    throw new AdempiereException("@NotSupported@ @C_UOM_ID@ - "+resourceUOM);

    The Resource's UOM must be a time measure. Unfortunately the error message is not so clear. Just a suggestion: that Exception is thrown only in the case isTime is not satisfied, that way we can change the message to something like ("Non Time UOM" + "@NotSupported@ @C_UOM_ID@ - "+resourceUOM).

    One last question, Victor: Could you explain why Resource UOM must be a Time measure?

    One more time, thanks for all your help.

    Best Regards,


  • Alex Yang

    Alex Yang - 2012-07-20

    One last question, Victor: Could you explain why Resource UOM must be a Time measure?

    I am also meeting this issue. Is this a bug?

    Marcio, have you resolved this issue?



Log in to post a comment.