Gegevens binnehalen via SOAP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Enthousiaste PHP webdevelopers gezocht in Overijss

Functieomschrijving Als PHP ontwikkelaar ga je ingezet worden als zowel de frontend als de backend. Hoewel de verhouding wel zwaar in het voordeel van de backend weegt. Je werkt samen met 5 andere ontwikkelaars aan de projecten en soms ook helemaal zelfstandig, afhankelijk van de grote van de opdracht. Gemiddeld duren projecten overigens een maand of drie. Daar waar mogelijk wordt getracht om nieuwe technieken in te zetten binnen projecten. Binnen het bedrijf hangt er een informele sfeer, iedereen wordt als gelijk gezien en daarom staat de deur bij iedereen altijd open. Om op een bepaald niveau te kunnen werken

Bekijk vacature »

Technisch Applicatiebeheerder

Ben jij toe aan een boost in je carrière en wil je graag werken aan uitdagende en maatschappelijk relevante projecten als Technisch Applicatiebeheerder? Ben jij een bevlogen specialist die applicaties tot in het diepst weet te doorgronden en die snel en adequaat reageert bij verstoringen? Heb jij de ambitie én potentie om door te groeien in onze organisatie? Dan zijn wij op zoek naar jou! Wat ga je doen? Als Technisch Applicatiebeheerder zorg je voor het continue beschikbaar zijn van applicaties. Je houdt je bezig met het inrichten, monitoren, analyseren en verbeteren van de technische infrastructuur en de procedures rondom

Bekijk vacature »

Microsoft SQL Server DBA

Heb jij ervaring met het beheren van Microsoft SQL Server of Azure database? En ben je een multi-skilled DBA met interesse in meerdere database management systemen? Kun jij het beheer van database omgevingen verbeteren en automatiseren? Dan bieden wij jou een mooie kans om goed tot je recht te komen! Wat ga je doen? Als Microsoft SQL Server DBA ben je samen met een team verantwoordelijk voor de goede werking van Microsoft SQL Server infrastructuren. Daarnaast krijg je de mogelijkheid om betrokken te worden bij uitdagende projecten. Afhankelijk van je ervaring en competenties, kun je naast beheer ook meewerken aan

Bekijk vacature »

Softwareontwikkelaar Netwerken (automation)

Functie­omschrijving 'Ik heb de vrijheid om nieuwe oplossingen te ontwerpen, én de kans en verantwoordelijkheid om die echt neer te zetten. Van slim idee tot realiteit in productie. Die ruimte voor nieuwe ideeën, met nieuwe materie en verbeteringen van oplossingen op alle vlakken, dat maakt mijn job aantrekkelijk.' Maarten Navers - systeemengineer van het team netwerken bij de Belastingdienst. Het team netwerken is onderdeel van de afdeling basisinfra diensten en bestaat uit ongeveer vijftig betrokken en deskundige specialisten. Hard werken en lol hebben staan hier hoog in het vaandel. Als team zijn we binnen de Belastingdienst verantwoordelijk voor het 24/7-beheer

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Starter Beta WO afgestudeerd traineeship Developer

Functieomschrijving Tijdens het traineeship krijg je de keuze om jezelf te ontwikkelen als developer. Welke richting (Front-end/Backend/Fullstack developer) dat mag jij zelf kiezen. Samen met met je collega's ga je kijken welke route het beste bij jou past en daar wordt een persoonlijk groeipad voor ontwikkeld. Ze zoeken wel mensen die (enige) ervaring hebben binnen development dus passie voor IT en programmeren is hier wel een must. Functie-eisen - Je hebt een afgeronde master of bachelor opleiding met béta component; - Je hebt kennis van een of meerdere programmeertalen; - Je bent creatief en denkt out-of-the-box; - Je bent gedreven

Bekijk vacature »

Javascript developer voor grote organisatie in jon

Functieomschrijving Jij gaat hier werken in een jong team die gemiddeld rond de 30 jaar is. Het is een multidisciplinair team van 6 personen die Scrum/Agile werken. Jij gaat er met het team voor zorgen dat de webapplicaties ontwikkeld worden zodat ze ingezet kunnen worden als integrale portalen. Het is een gezellig en jong team waar plezier en gezelligheid ook zeer belangrijk is. Jij gaat hier werken op zowel de Front- als Backend. Dat doe je met Angular, Node.js, JavaScript, TypeScript, HTML en CSS. Daarnaast werk je in de Cloud met AWS. Ben jij een developer maar heb je in

Bekijk vacature »

Backend PHP developer voor woningsector platform

Functieomschrijving In de functie van Backend PHP developer werk je in een multidisciplinair team nauw samen. In het team waarin jij terecht komt zitten 8 personen, denk hierbij aan; Frontend, Backend, UX designers, Test Engineers, DevOps en Test Engineers. Als Backend developer werk jij veel met Symfony 4. De codes worden bedacht en gestructureerd door een Domain Driven Design. Ze streven wel naar een Continious Deployment waarin uiteraard wel Test Automation plaatsvindt. Het Functie-eisen - HBO werk- en denkniveau; - Minimaal 4 jaar ervaring binnen PHP; - Je hebt ervaring met Symfony en/of Laravel; - Ervaring met Docker/Kubernetes is een

Bekijk vacature »

Senior Mobile Developer vacature

Senior Mobile Developer Op bijna elke mobiele telefoon in Nederland is wel een app te vinden die door Sogeti is ontwikkeld of waar Sogeti aan mee heeft gewerkt. Wil jij meehelpen met het ontwikkelen van mobiele applicaties voor de top van het Nederlandse bedrijfsleven? Als Senior Mobile Developer ben jij verantwoordelijk voor het implementeren en testen van nieuwe features. Je bent medeverantwoordelijk voor de codebase en moet deze code dus ook goed onderhouden. Doordat je thuis bent in het mobiele landschap kun je gemakkelijk sparren met andere ontwikkelaars, designers, analisten en technische leads om zo de producten waar aan je

Bekijk vacature »

Senior Front-end Developer vacature

Senior Front-end Developer Jij weet wat er nodig is. Jouw hart gaat sneller kloppen van techniek. Jij wil vooruit. Je bent creatief, thuis in gebruikersinteractie en een Developer in hart en nieren. Daarnaast heb jij een klantgerichte en initiatiefrijke houding. Precies de kwaliteiten die een Front-end Developer nodig heeft. Wat doe jij als developer bij Sogeti? Als Front-end Developer werk je aan de technische realisatie van front-end (web)applicaties in de verschillende opdrachten voor Sogeti’s klanten. Dit kan zowel op klantlocatie, als intern bij Sogeti. Jij houdt van het uitdenken en implementeren van responsive (web) apps, en zet hiervoor jouw uitgebreide

Bekijk vacature »

Full stack .Net Developer - Portal/CMS (Core/Azure

Voor een bekende financiële dienstverlener zijn wij op zoek naar een ervaren Full-stack Software Developer (.Net / C#). Onlangs hebben zij een nieuw CMS systeem en klanten portal in gebruik genomen en online gegaan. Aan jou te taak de portals flink uit te breiden met nieuwe functionaliteiten en upgrades in de DevOps omgeving. Jij zorgt voor een ultieme klant beleving door klanten nog beter in staat te stellen al hun zaken in de portal te organiseren en in te zien door middel van duidelijke overzichten. Hierin werk je veelal met o.a. Sitecore, Unit Testing, CI/CD, TFS, Git, Scrum en JavaScript,

Bekijk vacature »

Senior Python Developer vacature

Jij volgt ontwikkelingen op de voet. Sterker nog: je bent er onderdeel van. Jij loopt voorop. Jij denkt met klanten mee en helpt hen innoveren. Zo kun jij een bijdrage leveren aan de Rabobank-app, de beveiliging van treinen voor Pro-rail verbeteren of de website van ING een boost geven. Vergaderen? Liever gewoon zorgen dat het werkt! Hoe omschrijft men een Sogetist? Gedreven, resultaatgericht en niet snel tevreden. Wat niet wil zeggen dat je nooit met hem of haar kunt lachen. Integendeel. Plezier hoort wat ons betreft net zo goed bij werken. Maar we gaan op de eerste plaats voor de

Bekijk vacature »

Huursector zoekt PHP medior/senior (Symfony) devel

Functieomschrijving Als PHP developer werk je aan hun platform binnen een multidisciplinair Scrum team. Je gaat samenwerken met andere developers binnen een multidisciplinair Scrum team. Jouw werkzaamheden richten zich voornamelijk op de Backend met Symfony. Je zorgt ervoor dat grote hoeveelheden data goed verwerkt worden. Dat doe je door een oplossing te bedenken in kleine hoeveelheden die snel worden gereleased. Dat doe je ook middels cloud met technieken als Docker en Kubernetes. In de rol van developer krijg je veel vrijheid om samen met je team te zoeken naar goede oplossingen dus je krijgt de mogelijkheid om te experimenteren met

Bekijk vacature »

PHP Developer Ontwikkelaar

Functieomschrijving Ontwikkelaar Developer JSON PHP Laravel 5 Ontwikkelen aan de PHP applicatie (aanpassingen, verbeteringen en uitbreidingen) Mede bepalen van coding principes en standaarden. Beheren van bestaande en nieuw ontwikkelde applicaties Verlenen van support op de applicaties Proactief verbetervoorstellen doen Testen en documenteren van ontwikkelde software Functie-eisen Minimaal HBO diploma Minimaal 2 jaar relevante ervaring Ervaring met Agile, SCRUM Bekendheid met Laravel 5 / JSON / REST API's / Objectorientatie en design patterns / UnitTesting / Mocking / GIT Kennis van Drupal / Symfony / Continuous Delivery / Continuous integration is pré Bedrijfsomschrijving Je gaat als PHP Developer aan de slag

Bekijk vacature »

C# Developer

De uitgebreide versie Jij hebt ruim twee jaar ervaring als developer. Nu wil je graag je tanden zetten in nog complexere projecten. Samen met je team bereik je nieuwe hoogtes en zelfstandig maak je meters. Je hebt behoefte aan collegae die jou alles leren op het gebied van technologie maar wilt tegelijkertijd ook graag je eigen opgedane kennis delen. Alles wat vandaag nog onbekend is, moet je morgen toepassen in de volgende uitdaging en dàt is wat jou scherp houdt. Je hebt geen zin in een 60-urige werkweek maar haalt wel plezier uit zo nu en dan een technische meeting,

Bekijk vacature »
Edwin slothouber

edwin slothouber

20/11/2019 11:54:38
Quote Anchor link
Hallo iedereen,

Ik ben nieuw in SOAP en probeer een volgens mij redelijk simpele actie voor elkaar te krijgen.
Ik heb SOAPUI geinstalleerd en wanneer ik daar de aanroep doe, krijg ik netjes terug wat ik verwacht.

Maar wanneer dat ik probeer te programmeren krijg ik alleen maar foutmeldingen...

Dit is wat ik zie in SOAPUI als request:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Afas.Profit.Services">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:GetData>
         <urn:token>
         <![CDATA[
        <token><version>1</version><data>hier_dus_een_token</data></token>
        ]]>
         </urn:token>
         <urn:connectorId>HIER_EEN_GET</urn:connectorId>
         <urn:filtersXml></urn:filtersXml>
         <urn:skip>0</urn:skip>
         <urn:take>20</urn:take>
      </urn:GetData>
   </soapenv:Body>
</soapenv:Envelope>

en daar komt dus netjes XML op terug.


Hoe dit in PHP op te lossen? Wat ik nu heb is dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$URL
= "https://een-wsdl-url";
$WebserviceClient = new SoapClient($URL);
$parameters= array(
    "token"=> 'hier_dus_een_token',
    'connectorId' => 'HIER_EEN_GET',
    'filtersXml' => '',
    'skip' => 0,
    'take' => 20,
);

$WebmethodResult = $WebserviceClient->GetData($parameters) or die('FOUT!');
var_dump($WebmethodResult);
?>

De foutmelding is deze:
Quote:
Fatal error: Uncaught SoapFault exception: [soap:Server]
Er is een onverwachte fout opgetreden. in /xxx.nl/afas-soap-request-2.php:19
Stack trace: #0 /xxx.nl/afas-soap-request-2.php(19):
SoapClient->__call('GetData', Array) #1 {main} thrown in /xxx.nl/afas-soap-request-2.php on line 19



Ik hoop dat iemand me kan helpen met mijn eerste soap-stapjes?
Edit:
Ik heb code-tags, en quotes geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 25/11/2019 15:44:33 door - Ariën -
 
PHP hulp

PHP hulp

02/07/2020 14:50:20
 
Thomas van den Heuvel

Thomas van den Heuvel

20/11/2019 16:06:21
Quote Anchor link
Blijkbaar werkt die functionaliteit met Exceptions. Een niet gevangen Exception resulteert altijd in een Fatal Error. Waarschijnlijk wordt uit de Exceptionboodschap en/of -trace snel duidelijk wat er misgaat.

Het algemene stramien om te werken met Exceptions, en het opvangen van fouten is als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
try {
    // hier je code
} catch (Exception $e) {
    // debugging
    echo get_class($e).': '.$e->getMessage().'<br>';
    echo nl2br($e->getTraceAsString());
}

?>

Het tweede deel is uiteraard alleen voor debugging en ontwikkeling. Het zou niet netjes staan als deze informatie op een live omgeving op het scherm wordt gedumpt.

En dan nog een security aspect: omdat je de informatie meestal in een HTML-context dumpt is het zaak dat er geen HTML wordt weergegeven of JavaScript wordt uitgevoerd, dus je doet er mogelijk verstandig aan om deze informatie te ontdoen van een mogelijk speciale betekenis binnen deze context, oftewel, je zou deze moeten escapen.

Hiertoe kun je een hulpfunctie introduceren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}

?>


Het catch-blok wordt vervolgens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
} catch (Exception $e) {
    // debugging
    echo escape(get_class($e)).': '.escape($e->getMessage()).'<br>';
    echo nl2br(escape($e->getTraceAsString()));
}

?>

In het algemeen is het een goede gewoonte om alle "output" te escapen, tenzij je hier een speciale -en gedocumenteerde- reden hebt om dit niet te doen.

NB: zoveel staat ook (nagenoeg letterlijk) in de oorspronkelijke foutmelding: Fatal error: Uncaught SoapFault exception. Het leren "lezen" van dit soort foutmeldingen kan je heel erg ver op weg helpen. Als je in staat bent om te debuggen zal het (leren) programmeren je ook stukken beter afgaan, want het dwingt je om op een analytische manier naar je code te kijken en dingen uit te zoeken. Dit vergroot op zijn beurt jouw inzicht in wat er gebeurt waardoor het begrip toeneemt.

Dus in zekere zin is hier het "probleem" (weer) niet het probleem, maar meer het interpreteren van de foutmelding en het formuleren van een aanpak voor het analyseren van wat er precies misgaat.
Gewijzigd op 20/11/2019 16:13:53 door Thomas van den Heuvel
 
Edwin slothouber

edwin slothouber

21/11/2019 11:07:40
Quote Anchor link
Dank je voor je reactie, Thomas.

Wanneer ik de try/catch er bij zet krijg ik dit terug:

Quote:
SoapFault: Er is een onverwachte fout opgetreden.
#0 E:\xxx\soap-request-2.php(20): SoapClient->__call('GetData', Array)
#1 {main}


Dus daar worden we helaas niet wijzer van...
Gewijzigd op 25/11/2019 15:45:21 door - Ariën -
 
Ivo P

Ivo P

21/11/2019 14:58:35
Quote Anchor link
Krijg je meer info als je
$WebserviceClient = new SoapClient($URL);

vervangt door

$WebserviceClient = new SoapClient($URL, ['trace' => 1]);

en dan eventueel via de info op https://stackoverflow.com/questions/14030228/how-to-dump-soapclient-request-for-debug/50847927 de aanroepen en parameters checkt?

Toevoeging op 21/11/2019 14:58:56:
Gewijzigd op 21/11/2019 14:59:24 door Ivo P
 
Edwin slothouber

edwin slothouber

25/11/2019 13:47:35
Quote Anchor link
Bedankt iedereen,

Ik ben er achter waarcom het niet werkte: de token was niet in de juiste form (er moest blijkbaar iets xml-erigs in staan).

Dus het werkt met deze code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$myParams
= array(
    'token'       => new \SoapVar( '<ns1:token><![CDATA[<token><version>1</version><data>123321123</data ></token >]]></ns1:token>', XSD_ANYXML ),
    'connectorId' => 'HIER_EEN_GET',
    'filtersXml'  => '',
    'skip'        => 0,
    'take'        => 20,
);

$webService = new \SoapClient( $URL,
    array(
        'cache_wsdl' => WSDL_CACHE_NONE,
        'trace'      => true,
    )
);

$result     = $webService->GetData( $myParams );
$resultXml  = $result->GetDataResult;                
?>


Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 25/11/2019 15:45:04 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

25/11/2019 16:48:23
Quote Anchor link
Vergeet je try-catch blok niet.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.