# powerGate v17 ## v17.1.68 beta `10-03-2017` **Features** **BomWindow** - Item Tab now also contains Item of the RootBom. - BomRows now have different stylings depending on their Status. **Fixed** - [](): Issue when connecting to service which requires authentication. Connection request was send twice. - [](): Issue when updating BomRow and Item properties, like "*@{'BOM_Test'='Test'}*" was added as "*BOM_BOM_Test*". - [](): When the item of a bomRow was updated, the changed properties were not available on the bomRow. - [$sapConnect](): Issue when multiple cookies are required from SAP. ## v17.1.60 beta `10-02-2017` **Fixed** - Fixed Issue where BOM Window was crashing when updating a bomRow property - Unhandled exceptions occured in the BOM Window are now handled internally. Therefore the calling application like *Vault* or *Poweshell_ISE* will not crash anymore because of unhandled exceptions occurred in the BOM Window. ## v17.1.57 beta `12-01-2017` **Features** **BomWindow** - [Show-BomWindow]() can be called also in other PowerShell IDE's - Merged all [required functions]() to single Check/Transfer functions - [Required functions]() are called a single time by passing all the entities as list (except [Get-BomRows]()) - New cmdlet: [Add-BomWindowEntity]() - New cmdlet: [Remove-BomWindowEntity]() - New cmdlet: [Update-BomWindowEntity]() - Introduced [status]() and Tooltip. Those are also available arguments for [required functions]() - extended UI to show in MessageBox the thrown errors from PowerShell functions **Fixed** - Getting response with state *403 Forbidden* when using [$global:SapConnect_Authentication]() - *Performance issue*: when running an Item/BOM check/transfer, all entities seem to be busy for a long time and suddenly all entities complete very fast at the exact same time. In the background the requests are send to the server in the meantime, but UI does not update with the results quickly. - *Performance issue*: After clicking 'Check' or 'Transfer' button, it takes very long time until first request is send to the server when a huge amount of entities becomes processed from the Window. :::{dropdown} Breaking Changes :class-title: warning : Renamed Cmdlet Show-ErpBom to Show-BomWindow. | v16 | v17 | |---------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Convert-ToErpMaterial/Bom | **removed**, because the Bom-Window has no knowledge about ERP anymore | | Convert-FromPsMaterial/Bom | **removed**, because the differences are settable via [Update-BomWindowEntity]() Cmdlet and are not automatically detected anymore. | | Get-ErpMaterial | Code **moved** to [Check-Items]() function. Use [Update-BomWindowEntity]() to change the [Status]() of the entity to New when not existing in ERP. | | Compare-Material | Code **moved** to [Check-Items](). Use [Update-BomWindowEntity]() to change the [Status]() of the entity to Different (set Tooltip with differences manually) or Identical when it exists in ERP. | | Create-ErpMaterial | Code **moved** to [Transfer-Items](). Create entity in ERP when the [Status]() of the entity is New. | | Update-ErpMaterial | Code **moved** to [Transfer-Items](). Update entity in ERP when the [Status]() of the entity is Different. | | Get-ErpBom | Code **moved** to [Check-Boms](). Use [Update-BomWindowEntity]() to change the [Status]() of the BOM-Header to New when the BOM does not exist in ERP. | | Compare-BomHeader | Code **moved** to [Check-Boms](). Use [Update-BomWindowEntity]() to change the [Status]() of the BOM-Header to Different (set Tooltip with differences manually) or Identical when the BOM does not exist in ERP. | | Compare-VaultBomRow | Code **moved** to [Check-Boms](). Use [Update-BomWindowEntity]() to change the [Status]() of the BOM-Row to Remove (when Row does not exist in ERP-BOM) or Different (set Tooltip with differences manually). | | Compare-ErpBomRow | Code **moved** to [Check-Boms]() function. Use [Update-BomWindowEntity]() to change the [Status]() of the BOM-Row to New (when ERP-Row does not exist in Children) or Identical. | | Create-ErpBom | Code **moved** to [Transfer-Boms](). Create BOM with all it's Children in ERP when the [Status]() of the BOM-Header is New. | | Update-ErpBom | Code **moved** to [Transfer-Boms](). Update BOM-Header in ERP when the [Status]() of the BOM-Header is Different. Additionally check for all it's Children whether there [Status]() is New, Remove or Different in order to create/remove/update those rows in the ERP-BOM. | | Begin-GetErpMaterials | **removed**, because the operation can be performed at the beginning of [Check-Items]() function. | | End-GetErpMaterials | **removed**, because the operation can be performed at the end of [Check-Items]() function. | | Begin-Create/UpdateErpMaterials | **removed**, because the operation can be performed at the beginning of [Transfer-Items]() function. | | End-Create/UpdateErpMaterials | **removed**, because the operation can be performed at the end of [Transfer-Items]() function. | | Begin-GetErpBoms | **removed**, because the operation can be performed at the beginning of [Check-Boms]() function. | | End-GetErpBoms | **removed**, because the operation can be performed at the end of [Check-Boms]() function. | | Begin-Create/UpdateErpBoms | **removed**, because the operation can be performed at the beginning of [Transfer-Boms]() function. | | End-Create/UpdateErpBoms | removed, because the operation can be performed at the end of [Transfer-Boms]() function. | ::: ## v17.0.46 `29-11-2016` **General** - Removed Datastandard Integration support from documentation **Features** - Re-designed Cmdlets (see below *Breaking Changes*) - Support for OData v1 - v4 standards - Installed "powerGate 17.0 Logs" shortcut in start-menu section of powerGate **BomWindow** - Changed status-icons to more meaningful icons - Introduced Localization for German environments **Fixed** - Moved LogFile to %LOCALAPPDATA%/coolOrange/Logs in order that Non-Admin users have write-access to the files. - Crash in BOM Window when customizing the columns with the field chooser - BomWindow shows error "Object reference not set to an instance of an object" when following BomRow properties are \$null: Bom_PositionNumber, Bom_Number, Bom_Quantity etc. . :::{dropdown} Breaking Changes :class-title: warning : **Connect-Erp** | v16 | v17 | |------------------------|------------------------------------------------------------| | -ServiceUri \ | renamed to *Service*. Additionally changed Type to \ | | -Username \ | renamed to *User* | | -Startcache | **removed** because Services are loaded on demand. | | Login-Window | **removed** | When connecting to [SAP]() servers v17 requires additional [-OnConnect]() argument for SAP endpoint. **Disconnect-Erp** | v16 | v17 | |------------------|-----------------| | Return type bool | changed to void | **Get-ERPServices** | v16 | v17 | |-----------------------------|----------------------------------------------------------------------------| | -Refresh \ | removed because Services are loaded on demand. | | Return type List\ | changed to [ErpService\[\]]()| \$service: Use [ErpService]() instead. | v16 | v17 | |-----------------------------------------------|-----------------------------------------------------------------------------| | -Path \ | replaced with Url. Changed type to \ | | -Loaded \ | removed, use Get-ERPServices instead and check if the service is contained. | | -EntityContainer \\> | removed, use Get-ERPEntitySets and Get-ERPEntityTypes instead. | $entitytype: use EntitySet and EntityType instead | v16 | v17 | |---------------------------------------------------------------|----------------------------------------------------------------------------------------------| | -Service \ | Changed type to \ in EntitySet | | -PropertyRefs \\> | replaced with Keys in Get-ERPEntityTypes. Changed type to \ | | -Properties \\> | replaced with Properties in EntityType. Changed type to \ | | -NavigationProperties \\> | replaced with NavigationProperties in EntityType. Changed type to \ | | -PropNames Collection\ | removed, use Properties instead | | -PropRefNames Collection\ | removed, use Keys instead | | -AllProperties Collection\ | removed, use Keys,Properties and NavigationProperties instead | | -AllPropertiesNames Collection\ | removed, use Keys,Properties and NavigationProperties instead | | -AllMandatoryErpProperties Collection\ | removed, use Keys,Properties and NavigationProperties instead and filter for mendatory once. | **Get-ERPObject** | v16 | v17 | |--------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | -Entity \ | renamed to EntitySet. Additionally it was possible to specify the EntitySet by giving the bundle name, separated with '.'. Now it is possible to specify the EntitySet by providing the full or a part of it's whole Url. | | -Key \ | renamed to Keys. Changed to to \ or \ | | -Exists | removed | | -Expand \ | changed type to String\[\]. In past it was possible to specify multiple properties separated by ','. Pass array now. | | -File \ | removed, use [Get-ERPMedia]() instead. | | Return type \ | Expanded navigation property lists where accessible via “.results”. Now the lists are directly accessible. | | | empty on error | **Get-ERPObjects** | v16 | v17 | |--------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | -Entity \ | renamed to EntitySet. Additionally it was possible to specify the EntitySet by giving the bundle name, separated with '.'. Now it is possible to specify the EntitySet by providing the full or a part of it's whole Url. | | -Top \ | changed to \ | | -OrderBy \ | changed to \ or \ or \. | | -Expand \ | changed to \. Note that it was possible to specify multiple properties separated by ','. | | Return type \ | Expanded navigation property lists where accessible via “.results”. Now the lists are directly accessible. | | | empty on error | **Remove-ERPObject** | v16 | v17 | |----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | -Entity \ | renamed to EntitySet. Additionally it was possible to specify the EntitySet by giving the bundle name, separated with '.'. Now it is possible to specify the EntitySet by providing the full or a part of it's whole Url. | | -Key \ | renamed to Keys. Changed to \ or \ | | Return type \ | \ with an additional property 'Error' containing the Exception/ErrorMessage. | **Update-ERPObject** | v16 | v17 | |------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | -Entity \" | renamed to EntitySet. Additionally it was possible to specify the EntitySet by giving the bundle name, separated with '.'. Now it is possible to specify the EntitySet by providing the full or a part of it's whole Url. | | -Properties \ | Splited now to two parameters called Keys and Properties. Changed to \ or \ | | -Deep switchparameter | removed | | HTTP request **PUT** | HTTP request **MERGE** | | Return type \ | empty on error. | **Add-ERPObject** | v16 | v17 | |---------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | -Entity\ | renamed to EntitySet. Additionally it was possible to specify the EntitySet by giving the bundle name, separated with '.'. Now it is possible to specify the EntitySet by providing the full or a part of it's whole Url. | | -Properties \ | Changed to \ or \ | | Return type \ | empty on error. | **Removed Cmdlets** **Get-ERPConnectionStatus** > Use result of [Connect-ERP]() instead, e.g.: ```{code-block} PowerShell :linenos: $global:connected = Connect-ERP -Service ... ``` When running in different runspace, or \$global:connected variable is not accessible because of the scope, you can use the following: ```{code-block} PowerShell :linenos: if( (Get-ErpServices) | where { $_.Name -eq '...' } ) { #already connected } ``` **Resolve-ERPObject** **Get-ERPEntities** Use cmdlets Get-ERPEntitySets and [Get-ERPEntityTypes]() instead. **Add-ERPDir** > Use cmdlet Add-ERPObject for creating the DirContext and [Add-ERPMedia]() for creating the MLE entity and the Media Resource.\ > Note that Add-ERPDir did not transmit the Slug-Header in the specified way. This is fixed with [Add-ERPMedia]() and could therefore cause server side fixes too. **Update-ERPDir** Use cmdlet [Update-ERPMedia]() for updating the Media Resource, and [Update-ERPObject]() for updating the MLE. **powerGateErrors** > removed\ > The last server response can be retrieved by using following example instead: [Accessing the last server response from your script]() :::