Thanks! I tried it out with a little example and the create-data-for-suffix-step was exactly what I was looking for. Data Costs; Do Source=1 To 10; Do Plant=1 To 20; Costs=Rannor(1)*4+19; Output; End; End; Run; Data Demand; Do Plant=1 To 20; Qty=Rannor(1)*20+200; Output; End; Run; Data Supply; Do Source=1 To 10; Qty=Rannor(1)*15+375; Output; End; Run; Proc Optmodel; Set <Num,Num> q_w; Num Costs{q_w}; Read Data Costs Into q_w=[Source Plant] Costs=Costs; Set Sources=Setof{<q,w> in q_w} q; Set Plants=Setof{<q,w> in q_w} w; Num Demand{Plants}; Num Supply{Sources}; Read Data Demand Into [Plants=Plant] Demand=Qty; Read Data Supply Into [Sources=Source] Supply=Qty; Var X{Sources,Plants}>=0; Con Cns1{q in Sources}:Sum{w in Plants}X[q,w]<=Supply ; Con Cns2{w in Plants}:Sum{q in Sources}X[q,w]>=Demand ; Min Obj=Sum{q in Sources,w in Plants}X[q,w]*Costs[q,w]; Solve with LP/Solver=Dual /*Algorithm=Network*/ IIS=On; create data var_status_data from [Source Plant] name=X.name status=X.status; create data con_status_data from [Plant] name=Cns1.name status=Cns1.status; Create Data Con_Status_data_2 From [Source] name=Cns2.name status=Cns2.status; Run;
... View more