Powershell и веб-сервисы: одним из параметров является DateTime ... Как я могу передать это значение? - PullRequest
0 голосов
/ 26 февраля 2020

Через PowerShell я вызываю сервис SOA. Вызов в порядке, за исключением одного поля, которое является DateField

$dataTeste = '09-JAN-18'
$dataTeste = [datetime]::ParseExact($dataTeste, "dd-MMM-yy", $null)
$dataTesteSeg = $dataTeste.ToString("yyyy-MM-dd")

$dataTesteSeg | Out-File -FilePath C:\temp\testefileseg.txt -Append

$posTangivelGerarReqAud.idSistemaOrigem = "PowerShell"  
$posTangivelGerarReqAud.idUtilizador = "user186"
$posTangivelGerarReqAud.tsInvocacao = $dataTesteSeg
$posTangivelGerarReqGen.idDocumento = "DRU_0012"
$posTangivelGerarReqGen.tipoEvento = "E"

$posTangivelGerarReqAud.tsInvocacao | Out-File -FilePath C:\temp\testefile.txt -Append

Итак, для отладки процесса я записал переменную в файлы журналов, чтобы я мог сказать вам, что $ dataTesteSeg имеет значение «2018 -01-09 "- это значение, которое я притворяюсь передать веб-службе, однако после того, как я свяжу переменную с параметром веб-службы, оно станет другим. В файле отладки $ posTangivelGerarReqAud.tsInvocacao становится «вторник, 9 января 2018 года, 12:00:00». Как заставить поле веб-службы иметь формат «гггг-ММ-дд».

Спасибо!

Ответы [ 3 ]

0 голосов
/ 27 февраля 2020

Попробуйте это

get-date $posTangivelGerarReqAud.tsInvocacao -Format "yyyy-MM-dd"
0 голосов
/ 28 февраля 2020

Когда вы выполняете строку ниже запусков, вы назначаете дату объекту DateTime.

$posTangivelGerarReqAud.tsInvocacao = $dataTesteSeg

Когда вы запускаете строки ниже, он выводит в своем формате DateTime по умолчанию.

$posTangivelGerarReqAud.tsInvocacao
Get-date
[datetime]::now

Вы можете преобразовать объект DateTime в нужный вам формат.

get-date $posTangivelGerarReqAud.tsInvocacao -Format "yyyy-MM-dd"
get-date -Format "yyyy-MM-dd"

Я надеюсь, что приведенный ниже код запускает ваш проект.

$dataTeste = '09-JAN-18'
$dataTeste = [datetime]::ParseExact($dataTeste, "dd-MMM-yy", $null)
$dataTesteSeg = $dataTeste.ToString("yyyy-MM-dd")

$posTangivelGerarReqAud.idSistemaOrigem = "PowerShell"  
$posTangivelGerarReqAud.idUtilizador = "user186"
$posTangivelGerarReqAud.tsInvocacao = $dataTesteSeg
$posTangivelGerarReqGen.idDocumento = "DRU_0012"
$posTangivelGerarReqGen.tipoEvento = "E"


$myObject = [PSCustomObject]@{
    idSistemaOrigem     = $($posTangivelGerarReqAud.idSistemaOrigem)
    idUtilizador        = $($posTangivelGerarReqAud.idUtilizador)
    tsInvocacao         = $(get-date $posTangivelGerarReqAud.tsInvocacao -Format "yyyy-MM-dd")
    idDocumento         = $($posTangivelGerarReqGen.idDocumento)
    tipoEvento          = $($posTangivelGerarReqGen.tipoEvento)

} 

$myObject | Out-File -FilePath C:\temp\testefile.txt -Append
0 голосов
/ 26 февраля 2020

Попробуйте

$dataTesteSeg = Get-Date $dataTeste -UFormat '%Y-%m-%d'

См. Get-Help Get-Date -Full для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...