Gegevens binnehalen via SOAP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer C# / ASP .Net

Functie omschrijving Ben jij een software ontwikkelaar die bekend is met termen ASP .NET, C# en SQL? Lees dan snel verder! Voor een bedrijf binnen de agrarische sector zijn wij namelijk op zoek naar een zelfstandige, enthousiaste en proactieve Software Developer die open staat voor een afwisselende functie met veel uitdaging. Binnen deze organisatie ben jij als Software Developer samen met één andere collega verantwoordelijk voor de ontwikkeling en modificatie van het support en controle programma dat binnen dit bedrijf gebruikt wordt. Hierbij draag jij bij aan de vertaling van klantwensen naar effectieve softwareoplossingen. Daarnaast ben je verantwoordelijk voor: Schatten

Bekijk vacature »

Software Developer

Longship.io gaat de wereld veroveren met baanbrekende software en legendarische... pizza-avonden! Lees hier de vacature van Software Developer! Bij Longship werken we met een team van 5 mensen aan software voor laadpaal operators. Longship is ontstaan in 2020 met als doel om de elektrische mobiliteitstransitie aan te jagen. We zijn nu al een wereldwijde speler doordat we continu voorop lopen in innovatie. Ons platform helpt het versneld elektrificeren van wagenparken, internationaal! Wij zijn een startup met grote ambities die we willen bereiken met een relatief klein en efficiënt team. Je krijg de kans om ontzettend veel te leren van ervaren

Bekijk vacature »

PHP developer (Symfony, Doctrine)

Functie Als PHP developer wordt er een hoge mate van zelfstandigheid verwacht, maar ook dat je goed opereert in een team waar kennis wordt gedeeld en dingen als codereviews erg veel voorkomen. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden

Bekijk vacature »

Machine Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Machine Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Machine Software Developer ben je verantwoordelijk voor: - Je ontwerpt, ontwikkelt en debugt software voor machinebesturingssystemen en complexe landbouwmachines; - Je stelt gebruikersinterfaces op (cabinedisplays); - Op termijn ga je softwareprojecten leiden voor specifieke machines; - Inclusief planning, documentatie en validatie; - Om specificaties te verifiëren

Bekijk vacature »

SQL database ontwikkelaar

Functie omschrijving Ben jij niet bang voor complexe algoritmes? Schikt het schrijven van procedures in T-SQL jouw niet af en heb jij al de nodige informatie in SQL, dan is functie precies wat voor jou! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat werken aan de complexere projecten waar jij van A tot Z bij betrokken bent. Je gaat zorg dragen voor het ontwerp, de ontwikkeling en het updaten van SQL databases. Dit doe je op basis van T-SQL. Jij bent van start tot finish betrokken bij de projecten die jij leidt. Je houdt contact met klanten en

Bekijk vacature »

Senior Airport Developer ( System engineer)

De functie Nice to know (you) De nieuwe A-pier wordt de duurzaamste van Schiphol. Als deze af is ligt er 4000 vierkante meter zonnepanelen op het dak. En de toiletten? Die spoelen door met regenwater. we gaan ervoor: het creëren van de meest duurzame en hoogwaardige luchthavens ter wereld. een toekomstbestendig en duurzaam Schiphol. Daar werken we elke dag hard aan in team Development & Sustainability. Jij bent regisseur, expert én aanjager van de ontwikkeling van Schiphol. Connecting your world Hoe maak je de ambities en doelstellingen van Schiphol concreet in een project? De waarde voor Schiphol naar eisen die

Bekijk vacature »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

Developer (One Data)

Do you have experience with managing IT Teams in a service delivery organization? Are you keen to bring the team and our platform to a higher level? Then Nutreco has a very interesting role for you! As a One Data developer you are responsible for the management, running and functional use of our integration landscape and processes within Nutreco. Nutreco is using at this time BizTalk 2016, and Apigee for its API management, to be replaced by Azure Integration Services as of 2023. You will be part of a virtual teams of 11 people (own and outsourced) working in an

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Rotterdam dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Digitale Tovenaar Gezocht: Junior Low-code/No-code

Bedrijfsomschrijving Duik mee in een wereld vol innovatieve avonturen waar gegevens en technologie een magische symbiose aangaan! Al meer dan twee decennia lang zijn we de tovenaars achter de schermen die oplossingen creëren voor de meest complexe klantcontactvraagstukken en datagedreven software-uitdagingen. Bij ons draait het om de kracht van samenwerking en groei. We zijn een hechte vriendengroep die samen bergen verzet om elkaar én onze klanten te laten schitteren. Jouw succes is ons succes en we streven ernaar om elkaar naar nieuwe hoogten te tillen, niet voor even, maar voor altijd. We willen dat jij je helemaal thuis voelt in

Bekijk vacature »

Medior C# Developer

Samen met het development team zorg je ervoor dat alle systemen achter de schermen vlekkeloos werken. Wat doe je als Medior C# Developer bij Coolblue? Als C# developer doe je regelmatig mee aan brainstormsessies over user experience, data en task flow met de UX Designer, Product Owner en Data Scientist in je team. Daarnaast schrijf je op zichzelf staande, consistente en testbare code die goed onderhoudbaar en toekomstbestendig is. Ook C# Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Werken met verschillende soorten data-opslag, zoals Oracle of AWS. Problemen oplossen

Bekijk vacature »

C# Developer Research and Development - Delft

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Delft Vacature ID: 6307 Introductie C# Developer Research and Development - Delft - Onze klant is één van de meest innovatieve bedrijven in de region van Delft. Op dit moment zijn ze voor het innovatie centrum. In het innovatie centrum wordt gewerkt aan de nieuwste technieken voor navigatie software. R&D / C# / Pattern Recognition / Algorithms / 3d Data / DotNET Functieomschrijving Als C# Developer kom je te werken in een innovatief scrumteam. We ontwikkelen en door ontwikkelen de nieuwste technieken op het gebied van navigatie software. Deze software wordt onder andere

Bekijk vacature »

Junior/medior PHP developer Onderwijssector

Functie Momenteel zijn ze op zoek naar een developer die, veelal fullstack, mee gaat werken aan de ontwikkeling van de producten en zo helpt aan de uitvoering van hun ontwikkelprojecten. Je komt te werken binnen hun development team bestaande uit 6 ontwikkelaars. Ze staan zowel open voor meer junior als medior/senior developers. Je kunt snel veel verantwoordelijkheid krijgen en doorgroeien binnen het bedrijf. Bovendien ben je betrokken bij het bepalen van de product roadmap en de inbreng van (nieuwe) technologieën. De applicaties waaraan je werk worden gebruikt op onderwijsinstellingen door heel Nederland. De tech-stack bestaat voornamelijk uit Laravel (PHP), Vue.js

Bekijk vacature »

Back-end Programmeur

Functieomschrijving Heb jij kort geleden je HBO ICT in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een ambitieuze werkgever in de regio van Breda zijn wij op zoek naar een Back-end programmeur met affiniteit met C#.NET, SQL en MS Access. Samen met team bestaand uit ware ICT professionals ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Belangrijk is dat je kennis of ervaring hebt van C#.NET en SQL. Je toont een flexibele en sociale houding naar klanten toe. Je denkt in nieuwe mogelijkheden & gaat graag de uitdaging aan. Bedrijfsprofiel De

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

25/04/2024 15:20:57
 
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.