2014-07-10 7 views
12

में एक्सएसडी के खिलाफ एक्सएमएल मान्य करें क्या एबीएपी में एक्सएसडी का उपयोग कर एक्सएमएल दस्तावेज़ की सत्यापन करने का कोई मानक तरीका है? जहां तक ​​मुझे पता है, वहां एक दृष्टिकोण है जो ग्यारहवीं/पीआई क्षमताओं का उपयोग करता है, लेकिन ये हमारे सिस्टम में उपलब्ध नहीं हैं।शुद्ध एबीएपी

मुझे लगता है कि हम एक वर्कअराउंड का उपयोग भी कर सकते हैं: किसी भी अन्य भाषा में स्टैंडअलोन जावा आरएफसी या वेब सेवा बनाएं, जो एसएपी से एक्सएमएल और एक्सएसडी ले लेगा, प्रमाणीकरण करेगा और एसएपी को वापस लौटाएगा; लेकिन यह अधिक जटिल और कम विश्वसनीय समाधान हो सकता है।

क्या आप इसी तरह के कार्य से मिले हैं और आपने इसे कैसे हल किया? स्पष्टीकरण के किसी भी सुझाव, टिप्पणियां और यहां तक ​​कि प्रश्नों की अत्यधिक सराहना की जाती है!

+4

जहां तक ​​मुझे पता है कि एसएपी मानक में वितरित कक्षा का कोई फ़ंक्शन मॉड्यूल/विधि नहीं है। मैंने कुछ समय पहले इसकी खोज भी की थी और कुछ भी नहीं ढूंढ पाया। मुझे लगता है कि आप ऐसा करने के लिए बाहरी सेवा को कॉल करने के विचार से फंस गए हैं। – Jagger

+0

xer का उपयोग करने के लिए एप्लिकेशन-सर्वर पर जावा का उपयोग करके एक संभावित "समाधान" और/या एक्सएसडी को डीटीडी में परिवर्तित करें: http://scn.sap.com/thread/3535431 – hotzen

उत्तर

0

बैठाना किसी को भी, जहाँ तक मेरा है, जबकि अब तक इंटरनेट के आसपास खोज को खोजने के लिए कर लिया है के द्वारा आता है ...

वहाँ ABAP में कोई मूल रास्ता एक XSD स्कीमा के खिलाफ एक XML दस्तावेज मान्य करने के लिए है। आपके पास सबसे अच्छा विकल्प एक डीटीडी है।

मेरे कोड नमूने पूर्ण नहीं हैं इसलिए कॉपी और पेस्टिंग काम नहीं करेगी, लेकिन मूल रूप से मैंने जो किया है वह एक्सएसडी स्कीमा को एप्लिकेशन सर्वर और एक्सएमएल फ़ाइल को अस्थायी निर्देशिका में सहेज रहा था। मैं जावा प्रोग्राम को कॉल करता हूं और एक्सएमएल और एक्सएसडी फाइल को तर्क के रूप में पास करता हूं।

enter image description here

यहाँ जावा कोड

Java XSD Validator

ABAP से है, तो आप इस आदेश कॉल करेगा और आपको OPEN DATASET साथ सहेजी गई फ़ाइल पारित कर सकते हैं। यहाँ एक कोड नमूना है:

ABAP Validator and OS Command

यह काम करता है, लेकिन यह नहीं बल्कि धीमी है। मैं एक कंप्यूटर पर लाइव सर्वर की तुलना में मामूली हार्डवेयर के साथ हूं, लेकिन इसमें एक छोटे एक्सएसडी और छोटे एक्सएमएल के साथ प्रति चेक लगभग 350 एमएमएस लगता है।

मुझे यकीन नहीं है कि इसे एक सेवा के रूप में चलाने या आरएफसी प्रदर्शन में सुधार करेगा, लेकिन यदि आप चाहते हैं कि यह एक शॉट के लायक है।

0

एबीएपी में एक्सएसडी से संबंधित सत्यापन के लिए इस रिपोर्ट का उपयोग करें: RPCXMLK0_VALIDATE
इसे प्रोग्रामेटिक रूप से भी लॉन्च किया जा सकता है।

+0

यह आवश्यक निष्पादित करने के लिए एसएपी-जीयूआई का उपयोग करता है विंडोज-क्लाइंट पर प्रमाणीकरण जहां तक ​​मैं इसे स्रोत से प्राप्त कर सकता हूं। यदि Windows सर्वर पर नहीं है तो पृष्ठभूमि के लिए कोई समाधान नहीं होगा। – nxthor

+0

ओपी को केवल पृष्ठभूमि में या जीयूआई के बिना सत्यापन चलाने की कोई स्पष्ट आवश्यकता नहीं थी, इसलिए यह भी एक वैध विकल्प है। – Suncatcher