1

Je veux appeler la méthode SubmitJob de l'applet de commande 'new-WebServiceProxy'. Les méthodes exposées à partir de l'applet de commande sont les suivantes.appel de la méthode 'SubmitJob' de nouveau-WebServiceProxy cmdlet dans Powershell

enter image description here

La définition de la méthode SubmitJob est la suivante

enter image description here

La méthode attend beaucoup de paramètres. Mais nous voulons passer seulement deux paramètres, à savoir 'pJobDefinition' et 'pAction'.

Lorsque nous passons ces deux paramètres, nous obtenons seuls ci-dessous erreur.

enter image description here

Aidez-moi d'appeler la méthode en passant ces deux seuls paramètres.

Merci à l'avance

+0

... ce qui vous fait penser cela peut fonctionner? – TessellatingHeckler

+0

@TessellatingHeckler Je ne suis pas sûr du paramètre obligatoire dans la méthode. Je suis nouveau pour les cmdlets de proxy de service dans PowerShell. – Venkatakrishnan

+0

Est-ce que '$ url' vous utilisez une ressource publique que vous pouvez partager avec nous? J'ai essayé 'New-WebServiceProxy 'http: //www.webservicex.net/globalweather.asmx? WSDL'' mais je n'ai pas eu les mêmes méthodes dans ma liste. Aussi quelle version PS utilisez-vous? Vous avez 3 listés donc ça fait plus d'efforts pour tester ça – Matt

Répondre

1

Le créateur de la méthode que vous appelez définit quels sont les paramètres obligatoires et qui ont des valeurs par défaut qui leur permettent d'être en option. En tant que consommateur de la méthode, vous n'avez pas d'autre choix que de fournir des valeurs pour tous les paramètres requis. Vous pouvez être en mesure de transmettre une valeur de $ null ou utilisez [System.Management.Automation.Language.NullString] :: Valeur à transmettre une valeur nulle à un paramètre spécifique, mais la capacité de le faire ne dépend pas de vous, il est uniquement jusqu'au créateur de la méthode.

Qu'est-ce que vous pourriez être en mesure de faire est de créer une fonction d'emballage qui ne prend que les deux entrées que vous souhaitez présenter et ajoute ensuite tous les paramètres supplémentaires avec des valeurs par défaut que vous définissez. Par exemple:

function SomeFunction ($foo,$bar,$foobar){ 
    #do something 
    $foo 
    $bar 
    $foobar 
} 

function MyShortFunction ($foo){ 
    SomeFunction($foo, "a parameter that doesn't change", "some other hardcoded parameter") 
} 

Pour ce faire, mais vous aurez besoin de savoir quelles valeurs des paramètres « par défaut » de passer pour faire en sorte que les appels fonctionnent correctement. En bref, le créateur de la méthode décide quelles valeurs sont requises et vous devez vous assurer que vous transmettez ces paramètres d'une manière ou d'une autre.

+0

Salut Après avoir fourni tous les paramètres, je reçois l'erreur ci-dessous. Exception appelant "SubmitJob" avec l'argument "23" (s): « La demande a échoué avec l'état HTTP 401: Non autorisé." Grâce à l'interface utilisateur, je suis en mesure de soumettre avec les mêmes paramètres, mais quand j'essaye par powershell je reçois l'erreur ci-dessus – Venkatakrishnan

+0

Est-ce que le service web ou la méthode exigent que les informations d'identification soient explicitement définies? Si vous rencontrez des problèmes d'authentification, je publierais une nouvelle question avec un code concis illustrant le problème exact: – StephenP

+0

J'ai essayé en fournissant des informations d'identification. – Venkatakrishnan