Acumatica - Как обновить настраиваемое поле в Customer Location из настраиваемого поля в Customer - PullRequest
0 голосов
/ 02 апреля 2020

Я пробовал несколько разных способов сделать это, и у каждого способа есть кусок кода, который я просто не понимаю. Мне нужно обновить настраиваемое поле UsrCustomerShipAccount в расположениях клиентов, если оно обновлено на вкладке «Доставка клиентов». Я попытался SetValueExt и создание экземпляра графа. Извините за тупой вопрос. Способ, который, казалось, сделал меня самым близким, ниже:

protected void LocationExtAddress_UsrCustomerShipAccnt_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e, PXFieldUpdated InvokeBaseHandler)
{
    if(InvokeBaseHandler != null)
        InvokeBaseHandler(cache, e);
    var row = (LocationExtAddress)e.Row;

    if (row == null) return;

    PXSelectBase<Location> locationObj = new PXSelect<Location, Where<Location.bAccountID, Equal<Required<Location.bAccountID>>>>(Base);
    Location deliveryLocation = locationObj.Select(row.LocationBAccountID);
    var locationExt = PXCache<Location>.GetExtension<LocationExt>(location);  <-- This generates error that there is no LocationExt.

    deliveryLocation.Cache.SetValueExt(deliveryLocation, "UsrCustomerShipAccount", -->This needs to be the value that changed LocationExtAddress.UsrCustomerShipAccount but I don't see how to get this<--);
    deliveryLocation.Cache.IsDirty = true;
    deliveryLocation.Update(deliveryLocation);  <--I don't know if this doesn't work because it is wrong or if it is because "UsrCustomerShipAccount" is not in deliverLocation.
}

1 Ответ

0 голосов
/ 02 апреля 2020

У вас есть

var locationExt = PXCache<Location>.GetExtension<LocationExt>(location);

Разве это не должно быть

var locationExt = PXCache<Location>.GetExtension<LocationExt>(deliveryLocation );

?

...