2016-02-04 97 views
0

我正在使用SOAP PHP创建客户端Sage X3,但我的请求SOAP失败。这里是我的代码:使用PHP SOAP从Web服务创建客户端Sage X3

$xml='<PARAM> 
    <GRP ID="BPC0_1" > 
    <FLD NAME="BCGCOD" TYPE="Char" >CUS</FLD> 
    <FLD MENULAB="Oui" MENULOCAL="1" NAME="BPCSTA" TYPE="Integer" >2</FLD> 
    <FLD NAME="BPCNAM" TYPE="Char" >'.$shorte_name.'</FLD> 
    </GRP> 
    <GRP ID="BPRC_1" > 
    <FLD NAME="CRY" TYPE="Char" >MA</FLD> 
    <FLD NAME="LAN" TYPE="Char" >FRA</FLD> 
    <FLD NAME="CRN" TYPE="Char" >tnrte</FLD> 
    <FLD NAME="CUR" TYPE="Char" >MAD</FLD> 
    </GRP> 
    <TAB DIM="30" ID="BPAC_1" SIZE="1" > 
    <LIN NUM="1" > 
     <FLD NAME="CODADR" TYPE="Char" >addr</FLD> 
     <FLD NAME="BPADES" TYPE="Char" >'.$ville.'</FLD> 
     <FLD NAME="BPACRY" TYPE="Char" >MA</FLD> 
     <FLD NAME="CRYNAM" TYPE="Char" >Maroc</FLD> 
     <FLD NAME="ADDLIG1" TYPE="Char" >'.$adresse.'</FLD> 
     <FLD NAME="ADDLIG2" TYPE="Char" ></FLD> 
     <FLD NAME="ADDLIG3" TYPE="Char" ></FLD> 
     <FLD NAME="POSCOD" TYPE="Char" >'.$code_postal.'</FLD> 
     <FLD NAME="CTY" TYPE="Char" >'.$ville.'</FLD> 
     <FLD NAME="SAT" TYPE="Char" ></FLD> 
     <FLD NAME="TEL1" TYPE="Char" >'.$phone_fixe.'</FLD> 
     <FLD NAME="WEB1" TYPE="Char" >'.$web_site.'</FLD> 
     <FLD NAME="WEB3" TYPE="Char" ></FLD> 
     <FLD MENULAB="Non" MENULOCAL="1" NAME="BPAADDFLG" TYPE="Integer" >1</FLD> 
    </LIN> 
    </TAB> 
    <GRP ID="BPC3_1" > 
    <FLD NAME="ZACCCOD" TYPE="Char" ></FLD> 
    </GRP> 
    <GRP ID="BPC3_2" > 
    <FLD NAME="VACBPR" TYPE="Char" >AF</FLD> 
    </GRP> 
    <GRP ID="BPC3_3" > 
    <FLD NAME="PTE" TYPE="Char" >CH30D60D_1020</FLD> 
    </GRP> 
</PARAM>'; 

$soapclient=new SoapClient($WSDL); 
$callContext = array('codeLang'=>$CODE_LANG, 'codeUser'=>$CODE_USER, 'password'=>$PASSWORD, 'poolAlias'=>$POOL_ALIAS, 'requestConfig'=>$REQUEST_CONFIG);       
$response = $soapclient->__soapCall('save', array($callContext, "YWSBPC", $xml), array('uri' => 'http://www.adonix.com/WSS', 'soapaction' => ''));} 

不幸的是我的请求失败,并返回此错误:

stdClass Object (
    [messages] => Array (
    [0] => stdClass Object (
     [message] => Niveau d'accés insuffisant 
     [type] => 3 
    ) 
) 
    [resultXml] => [status] => 0 
    [technicalInfos] => stdClass Object (
    [busy] => 
    [changeLanguage] => 
    [changeUserId] => 
    [flushAdx] => 
    [loadWebsDuration] => 0.055482 
    [nbDistributionCycle] => 1 
    [poolDistribDuration] => 1.134829 
    [poolEntryIdx] => 0 
    [poolExecDuration] => 383.223727 
    [poolRequestDuration] => 385.851035 
    [poolWaitDuration] => 1.492052 
    [processReport] => 
    [processReportSize] => 0 
    [reloadWebs] => 
    [resumitAfterDBOpen] => 
    [rowInDistribStack] => 1 
    [totalDuration] => 391.547802 
    [traceRequest] => 
    [traceRequestSize] => 0 
) 
) 

我敢肯定,WSDL和上下文是正确的,因为我使用相同的代码读取客户端和有用。

另外我试图使用SoapUI 5.2.1 - 我使用了一个有效的XML请求,但我得到了同样的错误。

回答

0

错误消息是法文的,意味着访问级别不足。 这link解释得很好。

归结为检查您用于处理请求的用户的用户权限。还提供了有关更改Web服务语言的提示。