SAP / odfuzz

Apache License 2.0
18 stars 12 forks source link

<class 'odfuzz.exceptions.BuilderError'>: An exception occurred while parsing metadata #63

Open prashdsouza opened 4 years ago

prashdsouza commented 4 years ago

I get the following error

<class 'odfuzz.exceptions.BuilderError'>: An exception occurred while parsing metadata: EntityType C_PaDaGdsIsDngrsGoodVHType does not exist in Schema Namespace EHDGM_PP_CBR_SRV at C:\Python38\lib\site-packages\odfuzz-0.13.2-py3.8.egg\odfuzz\entities._get_data_model(entities.py:138) at C:\Python38\lib\site-packages\odfuzz-0.13.2-py3.8.egg\odfuzz\entities.build(entities.py:123) at .(:14)

Application url

https://qnc-715.wdf.sap.corp/ui?sap-language=EN&saml2=enabled#BR_CompliancePatternANTT-manageEnclSpecClfn User/pass :DG_SPLST_PCL/Welcome1! Service: EHDGM_PP_CBR_SRV

<class 'odfuzz.exceptions.BuilderError'>: An exception occurred while parsing metadata: Target Type C_RU_ImprtCstmsDeclnItemTPType of ValueHelper(C_RU_ImprtCstmsDeclnItemTPType/Material) does not exist at C:\Python38\lib\site-packages\odfuzz-0.13.2-py3.8.egg\odfuzz\entities._get_data_model(entities.py:138) at C:\Python38\lib\site-packages\odfuzz-0.13.2-py3.8.egg\odfuzz\entities.build(entities.py:123) at .(:14)

phanak-sap commented 4 years ago

It would be better to add the metadata file (as as GIST url perhaps) than as credentials to some service...

The error is trimmed too early, but it looks like it is from pyodata itself - seems that your service has inconsistent metadata. you can try simple script by just using pyodata itself, like in its readme; it fails when cannot create valid tree from metadata definition.

Fuzzer is intentionally not able to run against invalid metadata - pyodata can, see its doc. But there is better to fail early in odfuzz than to try create URLs against metadata definition with problems. We run fuzzer only after the metadata passes validations by pyodata itself.

prashdsouza commented 4 years ago

metadata2.txt @phanak-sap Attaching the metadata file. Can you confirm the inconsistent part.

phanak-sap commented 4 years ago

Well , it is in the error itself:

WARNING: [RuntimeError] Target Type C_RU_ImprtCstmsDeclnItemTPType of ValueHelper(C_RU_ImprtCstmsDeclnItemTPType/Material) does not exist
WARNING: [RuntimeError] Target Type C_RU_ImprtCstmsDeclnItemTPType of ValueHelper(C_RU_ImprtCstmsDeclnItemTPType/CompanyCodeForEdit) does not exist
WARNING: [RuntimeError] Target Type C_RU_ImprtCstmsDeclnItemTPType of ValueHelper(C_RU_ImprtCstmsDeclnItemTPType/RU_EntryCustomsOfficeForEdit) does not exist
WARNING: [RuntimeError] Target Type C_RU_ImprtCstmsDeclnItemTPType of ValueHelper(C_RU_ImprtCstmsDeclnItemTPType/RU_CustomsDeclarationForEdit) does not exist

Pyodata needs improvement in the error handling - and it is being planned - but so far you need to use grep/ ctl+f.