Question

My problem is when copying items from a list to another, i can see the BCS field in the Display form(the value of the BCS in the display form is correct) but not in the Edit form(the text box of the BCS in the Edit form is empty).

here is my code :

$web = Get-SPWeb http://intranet/sales/
$listSales = $web.Lists["Sales Projects"]


$Prospect = Get-SPWeb http://intranet/CAC/
$listProspect = $Prospect.Lists["Clients"]


foreach ($item in $listSales.Items | Where {$_["Status"] -eq "Confirmed" -and $_["isDone"] -eq $null}) { 

Write-Host $item.Title

  $newItem = $listProspect.Items.Add();


  $newItem["Client's Name"] = $item["Client Name"]
  $newItem["Initiator"] = $item["Initiator"]
  #Depo is the external data Field (BCS).
  $newItem["Depositary"] = $item["Depo"]


  $newItem.Update()


  $item["isDone"]="Done"
  $item.Update()

}

Était-ce utile?

La solution

The solution is :

$web = Get-SPWeb http://intranet/sales/
$listSales = $web.Lists["Sales Projects"]


$Prospect = Get-SPWeb http://intranet/CAC/
$listProspect = $Prospect.Lists["Clients"]


foreach ($item in $listSales.Items | Where {$_["Status"] -eq "Confirmed" -and $_["isDone"] -eq $null}) { 

Write-Host $item.Title

$newItem = $listProspect.Items.Add();


$newItem["Client's Name"] = $item["Client Name"]
$newItem["Initiator"] = $item["Initiator"]


      #Get the BCS column as a BCS field for the item
      $Depo = $item.fields | ? {$_.Title -eq "Custodian / Depository"} 
      #Get the related ID field name
      $DepoBCSIDfield = $Depo.relatedfield

      $BCSID = $item[$Depo.relatedfield].tostring()
      $value = [Microsoft.SharePoint.BusinessData.Infrastructure.EntityInstanceIdEncoder]::DecodeEntityInstanceId($BCSID)


      $newDepo = $newItem.fields | ? {$_.Title -eq "Depository"} 
      $newDepoBCSID = $newDepo.relatedField
      $newItem[$newDepo.Title] = $item["Custodian / Depository"]
      $newItem[$newDepoBCSID] = $value

 $newItem.Update()


 $item["isDone"]="Done"
 $item.Update()
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top