function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
kuldeep paliwalkuldeep paliwal 

Error: Compile Error: Illegal assignment from Id to AcctSeedERP__Purchase_Order_Line__c at line 37 column 49

trigger UpdateCustomerPOField on AcctSeedERP__Purchase_Order__c (after insert) {

    list<id> pOrderLineId = new list<id>();
    list<id> sOrderId = new list<id>();
    List<AcctSeedERP__Sales_Order__c> salesOrderFieldToInsert = new List<AcctSeedERP__Sales_Order__c>();
    
    List<AcctSeedERP__Purchase_Order__c> purchase = [SELECT Id,Customer_PO__c,(SELECT Id,Name FROM AcctSeedERP__Purchase_Order_Lines__r ) FROM AcctSeedERP__Purchase_Order__c LIMIT 1];
    
    map<id, id> purOrderLineIdpurOrderIdMap = new map<id, id>();
    
    for(AcctSeedERP__Purchase_Order__c  purchaseOrder : purchase){
        for(AcctSeedERP__Purchase_Order_Line__c purchaseOrderLine : purchaseOrder.AcctSeedERP__Purchase_Order_Lines__r ) {
        pOrderLineId.add(purchaseOrderLine.Id);
        purOrderLineIdpurOrderIdMap.put(purchaseOrderLine.Id,purchaseOrder.Id);
        }
    }
    
    list<AcctSeedERP__Sales_Order_Line__c> salesOrderLineList = [Select id, AcctSeedERP__Purchase_Order_Line__c,AcctSeedERP__Sales_Order__c From AcctSeedERP__Sales_Order_Line__c Where AcctSeedERP__Purchase_Order_Line__c In: pOrderLineId LIMIT 1];
    map<id, id> salesOrderLinePurOrderLineMap = new map<id, id>();
    map<id, list<AcctSeedERP__Sales_Order_Line__c>> salesOrderSalesOrderLineMap = new map<id, list<AcctSeedERP__Sales_Order_Line__c>>();
    
    for(AcctSeedERP__Sales_Order_Line__c salesOrderLine : salesOrderLineList){
     list<AcctSeedERP__Sales_Order_Line__c> tempList = salesOrderSalesOrderLineMap.get(salesOrderLine.AcctSeedERP__Sales_Order__c);
        sOrderId.add(salesOrderLine.AcctSeedERP__Sales_Order__c);
        salesOrderLinePurOrderLineMap.put(salesOrderLine.Id, salesOrderLine.AcctSeedERP__Purchase_Order_Line__c);
        salesOrderSalesOrderLineMap.put(salesOrderLine.AcctSeedERP__Sales_Order__c,tempList);
    }
    
    list<AcctSeedERP__Sales_Order__c> salesOrderList = [Select id,Customer_PO__c,(SELECT Id,Name,AcctSeedERP__Sales_Order__c FROM AcctSeedERP__Sales_Order_Line__r)  From AcctSeedERP__Sales_Order__c Where Id In: sOrderId LIMIT 1];
    
    for(AcctSeedERP__Sales_Order__c salesOrder : salesOrderList){
    
        List<AcctSeedERP__Sales_Order_Line__c> SalesOrderLineId = salesOrderSalesOrderLineMap.get(salesOrder.Id);
        
        for(AcctSeedERP__Sales_Order_Line__c salesOrderLine : SalesOrderLineId){
        
            AcctSeedERP__Purchase_Order_Line__c purOrderLineId = salesOrderLinePurOrderLineMap.get(salesOrderLine.Id);
            
            for(AcctSeedERP__Purchase_Order_Line__c purOrderLine : purOrderLineId){
            AcctSeedERP__Purchase_Order__c purOrder = purOrderLineIdpurOrderIdMap.get(purOrderLine.Id);
            purOrder.Customer_PO__c = salesOrder.Customer_PO__c;
            salesOrderFieldToInsert.add(purOrder);
            }
        }
    }
    
    if(salesOrderFieldToInsert.size()>0){
            insert salesOrderFieldToInsert;
            }
}
Raj VakatiRaj Vakati
Hello , 
In line number 19  you defined map as Key and vale as Ids 

 map<id, id> salesOrderLinePurOrderLineMap = new map<id, id>();

in line number 37 you are getting the value from salesOrderLinePurOrderLineMap map which is of type Id. But you assigned to AcctSeedERP__Purchase_Order_Line__c  which is wrong.

 AcctSeedERP__Purchase_Order_Line__c purOrderLineId = salesOrderLinePurOrderLineMap.get(salesOrderLine.Id);


Update line number 37 with below code .
Id purOrderLineId = salesOrderLinePurOrderLineMap.get(salesOrderLine.Id);
           



 
kuldeep paliwalkuldeep paliwal
this work but i face another problem
Error: Compile Error: Initial term of field expression must be a concrete SObject: Id at line 43 column 13

trigger UpdateCustomerPOField on AcctSeedERP__Purchase_Order__c (after insert) {

    list<id> pOrderLineId = new list<id>();
    list<id> sOrderId = new list<id>();
    List<AcctSeedERP__Sales_Order__c> salesOrderFieldToInsert = new List<AcctSeedERP__Sales_Order__c>();
    
    List<AcctSeedERP__Purchase_Order__c> purchase = [SELECT Id,Customer_PO__c,(SELECT Id,Name FROM AcctSeedERP__Purchase_Order_Lines__r ) FROM AcctSeedERP__Purchase_Order__c LIMIT 1];
    
    map<id, id> purOrderLineIdpurOrderIdMap = new map<id, id>();
    
    for(AcctSeedERP__Purchase_Order__c  purchaseOrder : purchase){
        for(AcctSeedERP__Purchase_Order_Line__c purchaseOrderLine : purchaseOrder.AcctSeedERP__Purchase_Order_Lines__r ) {
        pOrderLineId.add(purchaseOrderLine.Id);
        purOrderLineIdpurOrderIdMap.put(purchaseOrderLine.Id,purchaseOrder.Id);
        }
    }
    
    list<AcctSeedERP__Sales_Order_Line__c> salesOrderLineList = [Select id, AcctSeedERP__Purchase_Order_Line__c,AcctSeedERP__Sales_Order__c From AcctSeedERP__Sales_Order_Line__c Where AcctSeedERP__Purchase_Order_Line__c In: pOrderLineId LIMIT 1];
    map<id, id> salesOrderLinePurOrderLineMap = new map<id, id>();
    map<id, list<AcctSeedERP__Sales_Order_Line__c>> salesOrderSalesOrderLineMap = new map<id, list<AcctSeedERP__Sales_Order_Line__c>>();
    
    for(AcctSeedERP__Sales_Order_Line__c salesOrderLine : salesOrderLineList){
     list<AcctSeedERP__Sales_Order_Line__c> tempList = salesOrderSalesOrderLineMap.get(salesOrderLine.AcctSeedERP__Sales_Order__c);
        sOrderId.add(salesOrderLine.AcctSeedERP__Sales_Order__c);
        salesOrderLinePurOrderLineMap.put(salesOrderLine.Id, salesOrderLine.AcctSeedERP__Purchase_Order_Line__c);
        salesOrderSalesOrderLineMap.put(salesOrderLine.AcctSeedERP__Sales_Order__c,tempList);
    }
    
    list<AcctSeedERP__Sales_Order__c> salesOrderList = [Select id,Customer_PO__c,(SELECT Id,Name,AcctSeedERP__Sales_Order__c FROM AcctSeedERP__Sales_Order_Line__r)  From AcctSeedERP__Sales_Order__c Where Id In: sOrderId LIMIT 1];
    
    for(AcctSeedERP__Sales_Order__c salesOrder : salesOrderList){
    
        List<AcctSeedERP__Sales_Order_Line__c> SalesOrderLineId = salesOrderSalesOrderLineMap.get(salesOrder.Id);
        
        for(AcctSeedERP__Sales_Order_Line__c salesOrderLine : SalesOrderLineId){
        
            
            Id purOrderLineId = salesOrderLinePurOrderLineMap.get(salesOrderLine.Id);
            
            for(AcctSeedERP__Purchase_Order_Line__c purOrderLine : purOrderLineId){
            
            Id purOrder = purOrderLineIdpurOrderIdMap.get(purOrderLine.Id);
            purOrder.Customer_PO__c = salesOrder.Customer_PO__c;
            salesOrderFieldToInsert.add(purOrder);
            }
        }
    }
    
    if(salesOrderFieldToInsert.size()>0){
            insert salesOrderFieldToInsert;
            }
}

How i update sales order field with purchase order field..
purchaseorder--> purchaseorderline[0]-->salesorderline[0]-->salesorder
Raj VakatiRaj Vakati
Update 43 line like this .

            purOrder.Customer_PO__c = salesOrder.Customer_PO__r;


 
kuldeep paliwalkuldeep paliwal
Error: Compile Error: Incompatible element type AcctSeedERP__Purchase_Order__c for collection of AcctSeedERP__Sales_Order__c at line 44 column 13

i do now something like that

trigger UpdateCustomerPOField on AcctSeedERP__Purchase_Order__c (after insert) {

    list<id> pOrderLineId = new list<id>();
    list<id> sOrderId = new list<id>();
    List<AcctSeedERP__Sales_Order__c> salesOrderFieldToInsert = new List<AcctSeedERP__Sales_Order__c>();
    
    List<AcctSeedERP__Purchase_Order__c> purchase = [SELECT Id,Customer_PO__c,(SELECT Id,Name FROM AcctSeedERP__Purchase_Order_Lines__r ) FROM AcctSeedERP__Purchase_Order__c LIMIT 1];
    
    map<id, AcctSeedERP__Purchase_Order__c> purOrderLineIdpurOrderIdMap = new map<id, AcctSeedERP__Purchase_Order__c>();
    
    for(AcctSeedERP__Purchase_Order__c  purchaseOrder : purchase){
        for(AcctSeedERP__Purchase_Order_Line__c purchaseOrderLine : purchaseOrder.AcctSeedERP__Purchase_Order_Lines__r ) {
        pOrderLineId.add(purchaseOrderLine.Id);
        purOrderLineIdpurOrderIdMap.put(purchaseOrderLine.Id,purchaseOrder);
        }
    }
    
    list<AcctSeedERP__Sales_Order_Line__c> salesOrderLineList = [Select id, AcctSeedERP__Purchase_Order_Line__c,AcctSeedERP__Sales_Order__c From AcctSeedERP__Sales_Order_Line__c Where AcctSeedERP__Purchase_Order_Line__c In: pOrderLineId LIMIT 1];
    map<id, id> salesOrderLinePurOrderLineMap = new map<id, id>();
    map<id, list<AcctSeedERP__Sales_Order_Line__c>> salesOrderSalesOrderLineMap = new map<id, list<AcctSeedERP__Sales_Order_Line__c>>();
    
    for(AcctSeedERP__Sales_Order_Line__c salesOrderLine : salesOrderLineList){
     list<AcctSeedERP__Sales_Order_Line__c> tempList = salesOrderSalesOrderLineMap.get(salesOrderLine.AcctSeedERP__Sales_Order__c);
        sOrderId.add(salesOrderLine.AcctSeedERP__Sales_Order__c);
        salesOrderLinePurOrderLineMap.put(salesOrderLine.Id, salesOrderLine.AcctSeedERP__Purchase_Order_Line__c);
        salesOrderSalesOrderLineMap.put(salesOrderLine.AcctSeedERP__Sales_Order__c,tempList);
    }
    
    list<AcctSeedERP__Sales_Order__c> salesOrderList = [Select id,Customer_PO__c,(SELECT Id,Name,AcctSeedERP__Sales_Order__c FROM AcctSeedERP__Sales_Order_Line__r)  From AcctSeedERP__Sales_Order__c Where Id In: sOrderId LIMIT 1];
    
    for(AcctSeedERP__Sales_Order__c salesOrder : salesOrderList){
    
        List<AcctSeedERP__Sales_Order_Line__c> SalesOrderLineId = salesOrderSalesOrderLineMap.get(salesOrder.Id);
        
        for(AcctSeedERP__Sales_Order_Line__c salesOrderLine : SalesOrderLineId){
        
            
            Id purOrderLineId = salesOrderLinePurOrderLineMap.get(salesOrderLine.Id);
            
            for(AcctSeedERP__Purchase_Order_Line__c purOrderLine : purOrderLineId){
            
            AcctSeedERP__Purchase_Order__c purOrder = purOrderLineIdpurOrderIdMap.get(purOrderLine.Id);
            purOrder.Customer_PO__c = salesOrder.Customer_PO__c;
            salesOrderFieldToInsert.add(purOrder);
            }
        }
    }
    
    if(salesOrderFieldToInsert.size()>0){
            insert salesOrderFieldToInsert;
            }
}
kuldeep paliwalkuldeep paliwal
 purOrder.Customer_PO__c = salesOrder.Customer_PO__r;
no its not work its show the same error