У меня есть необходимость переопределить оператор Select, используемый для SOShipmentPlan
PXProjection / DA C, а именно: удалить условие
And <INPlanType.isFixed, Equal<boolFalse>
.
Я могу переопределить все CreateShipment()
logi c и вводить любые другие необходимые подпрограммы в класс SOShipmentEntry_Extension
, так что я наконец смогу использовать свою собственную версию класса SOShipmentPlan
, но все это кажется излишне сложным, когда все Я хочу сделать, это переопределить выбор для атрибута PXProjection. Переопределение CreateShipment()
и поддержка подпрограмм также кажутся быстрым способом попасть в беду, наступает время для обновлений.
Итак, есть ли простой способ переопределить BQL PXProjection
, или я застрял переопределением все виды кода?
ОБНОВЛЕНИЕ 1
На основе ссылки, представленной ниже ( stackoverflow.com / a / 41540659/7376238 ), I чувствую, что я рядом. Вот блок кода, с которым я заканчиваю:
namespace PX.Objects.SO
{
public class SOShipmentEntry_Extension : PXGraphExtension<SOShipmentEntry>
{
#region Event Handlers
#endregion
[Serializable]
[PXProjection(typeof(Select2<SOOrder,
InnerJoin<SOOrderType, On<SOOrder.FK.OrderType>,
InnerJoin<INItemPlan, On<INItemPlan.refNoteID, Equal<SOOrder.noteID>>,
InnerJoin<INPlanType, On<INItemPlan.FK.PlanType>>>>,
Where<INItemPlan.hold, Equal<boolFalse>,
And<INItemPlan.planQty, Greater<decimal0>,
And<INPlanType.isDemand, Equal<boolTrue>,
And<INPlanType.isForDate, Equal<boolTrue>,
And<Where<INItemPlan.fixedSource, IsNull,
Or<INItemPlan.fixedSource, NotEqual<INReplenishmentSource.transfer>>>>>>>>>))]
[PXSubstitute()]
public partial class SOShipmentPlanCst : SOShipmentPlan
{
int x = 0;
}
}
Но, похоже, он не работает. Не уверен, где я должен положить код. Я попытался поместить определение класса внутри и вне класса public class SOShipmentEntry_Extension : PXGraphExtension<SOShipmentEntry>
(в настоящее время внутри класса расширения, как показано). В любом случае не повезло.