Question -------- I'd like to reject my incoming order (850) based on a special condition. This rejection criteria is unique to our relationship with out trading partner and NOT something that MXP would consider a valid rejection criteria. I don't want you, GTR (or our local programmer) to put this criteria in the program because then I'd have to ask you to remove the "rejection criteria" from the code should the criteria change at a later date. I'll give you an example: I'd like to reject each incoming order for partner XYZ that has a terms rate that is not 3.2 (or some other special rate stored somewhere and available to the inbound logic). How do I do this without doing any program modifications and via a formula or a simple mapping? Answer ------ Let's base this technique on the fact that an incoming order always gets rejected if certain values are not filled (mandatory values). We do know that if the customer field on the order is not correctly mapped to a valid customer, the whole order would get rejected. Actually, using any field that causes a rejected order will do the trick, but for the purpose of my explanation, let us use the "invalid customer on the order" to explain how to resolve the problem that you have asked me. First of all, we must determine on which segment the rejection criteria is to based on. Here, we may determine that this rate is coming in on the ITD segment, some position, let's say. Technique starts here (via an example): For the position in the 850 map where you are mapping the ITD segment, create a new line-no (this would be 1 more than your last number for this position, and in the 50's), Map as follows: --------------- File: order Field: cust-no How the append switch is set does not matter Formula: if |CURRELEM| = 3.2 then order.cust-no else "bogus-cust" Note that the usage of the literal "bogus-gust" is exactly what you may type, as long as the customer is not a valid customer in your system. Thus, the above formula indicates that if the rate is 3.2 then keep the order.cust-no as was it was already set on a prior segment otherwise overwrite it by the literal "bogus-cust". With this solution, your entire order will go into the EDI data file holder. You'd have to remember that when you see that there is an "ERROR in customer number" on your output report, this would not be correct; rather, you have rejected the order based on some criteria that you have set in the mapping and you must do a further action known to you. Thus, this error would be a misnomer. Should you be absent for a bit, then your replacement person would think that the incoming customer number really is erroneous, and spend time focusing on the failed customer value. That's a downfall of this solution. But the upside would be that the end-result would be what you want: a rejected order. Because of this trick, you don't have to have a special modification done to your software to reject orders based on a condition that your company finds important with respect to orders coming in for this partner in question. Thus, you may contact your partner on your own to indicate that the order was rejected based on the fact that the terms received were invalid and then consequently getting the correct value, correcting the value in the holder, followed by doing a new receive from the EDI holder. Should you have too many orders that are being rejected (OUCH), then perhaps you'll have to think up a more pleasing solution to this problem with your partner or with a company decision. Otherwise, please do not hesitate to ask us for a quote on a precise modification with a better error message. Do note that this solution can be extrapolated to any inbound transaction set, as long as you know what criteria would force a rejection of the document to be created.