Error with M30 posting | IFS Community

Error with M30 posting

Userlevel 2
Badge +4

Hi everyone,


We getting an error when trying to post a fiscal note, although we don’t understand why the error is happening.

In the order, we have the following preposting values:

We have the preposting rules created as you can see below.

However, when posting the fiscal note, we get the following error:

“Value is missing or has an invalid time interval for posting type M30 control type C32 code part B in company 100.”


To help with your answers, this error is only happening with non inventory sales-parts.

Why is IFS searching for the values in M30 posting, when the values came from preposting?

Is there some parametrization missing on our behalf?


Thanks in advance,

Carlos Mendes


Best answer by Adam Bereda 22 June 2022, 11:30

View original

6 replies

Userlevel 5
Badge +10

It appears you are missing an accounting group designation (either the basic data or within the C32 details).   Your setup defines post to a cost center as defined by the accounting group (on the inventory part).   I cannot find an accounting group on non-inventory sales part.


M30 is defined in the system to capture non-taxable sales.   It does not define inventory v non-inventory.  Without seeing the details of your setup, it appears you need to map to a sales designation rather than an inventory detail/basic data set.



Userlevel 7
Badge +12


One more point in addition to what Christy said above. 
If you need to classify sales parts for posting purpose, C15 - sales part group - is a control type common for inventory and non-inventory parts. C32 applies only to inventory part and to avoid errors in posting, M30 definition using C32 should have default value for no CT Value indicated.

In general, if preposting is always to be used, there is C58 control type, “Mandatory preposting”. If used for M104 posting type e.g. for Cost Center code part, M30 for Cost center should not be defined at all, as it will be always overridden by preposting.

I think the logic of posting creation for an invoice is as follows:

  1. Trigger posting event function. This will raise errors “Value is missing or has an invalid time interval” if empty code part value is received as a result. 
  2. Apply pre-posting of an object (e.g. order line) - if applicable as per event definition
  3. Apply code string completion (if overwrite allowed as per posting control “Override” flag)
  4. Validate account requirements and combination validity (this will raise errors “Invalid account requirements” and “Invalid combination”)


Userlevel 2
Badge +4

Hi @cperdue and @Adam Bereda,


Thanks for your input.


I added that is was an non inventory part, because I could see that it could be relevant.

We don’t always want to use preposting, it is only for specific cases of non inventory parts.

Inventory Parts are all configured in Posting Control without preposting.


What I don’t understand, and from what you wrote Adam, is that even though I put values in preposting, those values need to exist in the M30 posting rule? Did I understand correctly?

If so, what is the purpose of having preposting, if you then need those values to exist in the posting rules anyway?

I apologize if I misunderstood.


Thanks in advance,

Carlos Mendes

Userlevel 7
Badge +12

Hi, Carlos,
If you require preposting in some cases only, you must just ensure M30 does not return error when preposting is going to be used. You need (any) default value for cost center specified for case of no control type value exists - i.e. in case of non-inventory part. This default value will be later replaced by preposting, if it is available. 

Userlevel 5
Badge +10

A visual to help with the question - the posting control M30 will need the C32 to have a defined default account number.   


If you need more than one account for the non-inventory sales to map, the C32 control type will need changed to a basic data set included on the non-inventory sales part (anything from the drop down that does not feed from the inventory part record):


Userlevel 2
Badge +4

Thanks once again for your input @Adam Bereda and @cperdue.


The last answer from Adam is what worked, as with a default value when no control type value exists, it uses the value from preposting, if it exists. If no value from preposting exists, and there is no match in the details of the posting, it uses the default value when no control type value exists.


Thank you very much for your help!