Perform inventory transfers from customization

I’m working on a customization to transfer parts between warehouses. I need to handle serial number transfer. I’m using working C # code from github which doesn’t handle serial numbers. Modifying the code to handle serial numbers, but without success. The serial number is not selected.

	InvTransferAdapter ita  = new InvTransferAdapter(oTrans);
	ita.BOConnect();
	string legalNumberMessage="";
	string partTranPKs="";
	string iPCID="";	
	bool recordADD;
	InvTransferDataSet itds = ita.InvTransferData;
	InvTransferDataSet transferRecord = ita.GetTransferRecord( Guid.NewGuid(), PartNum,iPCID,UOM,out recordADD);
	InvTransferDataSet.InvTransDataTable table = (InvTransferDataSet.InvTransDataTable)ita.InvTransferData.InvTrans;
	DataRow dsa = table.Rows[0];
	 dsa.BeginEdit();
	  dsa["Company"]="P001";
      dsa["FromWarehouseCode"]=FromWarehouse;
      dsa["ToWarehouseCode"]=ToWarehouse;
      dsa["FromBinNum"]=FromBin;
      dsa["ToBinNum"]=ToBin;
      dsa["Plant"]="MfgSys";
      dsa["Plant2"]="MfgSys";
      dsa["PartNum"]=PartNum;
      dsa["TranReference"]=Reference;
      dsa["FromPlant"]="MfgSys";
      dsa["ToPlant"]="MfgSys";
      dsa["TransferQty"]=1;//Qty;
      dsa["TransferQtyUOM"]=UOM;
      dsa["TranDocTypeID"]="MM";
	  dsa["TrackSerialnumbers"]=true;
	  dsa["Source"]="xx";
	  dsa["RowMod"]="U";
	  dsa.EndEdit();

	InvTransferDataSet.SelectedSerialNumbersDataTable tableSN=(InvTransferDataSet.SelectedSerialNumbersDataTable) ita.InvTransferData.SelectedSerialNumbers;
	DataRow dsaSN = tableSN.NewRow();
	dsaSN.BeginEdit();
	dsaSN["Company"]="P001";
	dsaSN["PartNum"]=PartNum;
	dsaSN["RowMod"]="A";
	dsaSN["SourceRowID"]=dsa["SysRowID"];
	dsaSN["SysRowID"]=Guid.NewGuid();
	dsaSN["SNBaseNumber"]="00911";
	dsaSN["NotSavedToDB"]=true;
	dsaSN["Voided"]=false;
	dsaSN["Scrapped"]=false;
	dsaSN["PreDeselected"]=false;
	dsaSN["KBLbrAction"]=0;
	dsaSN["SerialNumber"]="1134-100-49500911";
	dsaSN.EndEdit();
 bool requiresUserInput = false;
	try{
	if (!ita.PreCommitTransfer(out requiresUserInput))
            				{
                			return;
            				}
        				}
        				catch (Exception exc)
        				{
            			MessageBox.Show(exc.ToString());
            			return;
        				}
	try{
	if (!ita.CommitTransfer(out legalNumberMessage,out partTranPKs))
            				{
							
                			return;
            				}
        				}
        				catch (Exception exc)
        				{
            			MessageBox.Show(exc.ToString());
            			return;
        				}
	ita.Dispose;

Corrected code for adding serial number. After this fix, my customization works fine.

    InvTransferDataSet.SelectedSerialNumbersDataTable tableSN=(InvTransferDataSet.SelectedSerialNumbersDataTable) ita.InvTransferData.SelectedSerialNumbers;|
    InvTransferDataSet.SelectedSerialNumbersDataTable tableSN=(InvTransferDataSet.SelectedSerialNumbersDataTable) ita.InvTransferData.SelectedSerialNumbers;
DataRow dsaSN = tableSN.NewRow();
dsaSN.BeginEdit();
dsaSN["Company"]="P001";
dsaSN["PartNum"]=PartNum;
dsaSN["RowMod"]="A";
dsaSN["SourceRowID"]=dsa["SysRowID"];
dsaSN["SysRowID"]=Guid.NewGuid();
dsaSN["NotSavedToDB"]=true;
dsaSN["Voided"]=false;
dsaSN["Scrapped"]=false;
dsaSN["PreDeselected"]=false;
dsaSN["KBLbrAction"]=0;
dsaSN["SerialNumber"]=SerialNumber;
dsaSN.EndEdit();
tableSN.Rows.Add(dsaSN);