Error when creating new Project Accrual transaction programmatically

SOLVED

Hi all,

I would like to create a new project accrual transaction programmatically. before that, I already tested the same transaction on standard Sage 200 screens. Then I try to make another transactions with my custom program,  but getting the error Ex40104Exception: "You must specify a nominal code." I have specify the nominal code for BS and PL as in the code below. I don't see any other nominal code to set.

private void TestInsertProjectCodeAccrual()
{
    try
    {
        PCAccrual accrual = PCAccrualFactory.Factory.CreateNew();
        accrual.Narrative = "Accrual Nov 25";
        accrual.TransactionReference = "Accrual Nov 25 TREF";
        accrual.SecondReference = "Accrual Nov 25 SEc ref";
        accrual.AccrualDate = DateTime.Now;
        accrual.ReversalDate = DateTime.Now.AddDays(2);

        PCProject pcproject = PCProjectFactory.Factory.Fetch("0000000001");
        accrual.PCProject = pcproject;

        PCProjectCostItems pcprojectitems = PCProjectCostItemsFactory.Factory.CreateNew();
        pcprojectitems.Query.Filters.Add(new Sage.ObjectStore.Filter(PCProjectCostItem.FIELD_CODE, "Item project Test 1"));
        pcprojectitems.Find();
        accrual.ProjectCostItem = pcprojectitems.First;

        accrual.Quantity = 1;
        accrual.GoodsValue = 250.00M;

        NominalSpecification PLNominalSpecification = NominalSpecificationFactory.Factory.CreateNew("03100", "", "");
        accrual.PLNominalSpecification = PLNominalSpecification;

        NominalSpecification BSNominalSpecification = NominalSpecificationFactory.Factory.CreateNew("04100", "", "");
        accrual.PLNominalSpecification = BSNominalSpecification;

        accrual.ValueToBill = 0;

        accrual.Update();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        Logger.WriteLog(ex.ToString());
    }
}