Пользовательский веб-сайт OCI: отправка формы с использованием jquery - PullRequest
0 голосов
/ 24 июня 2019

Я создал простой HTML-сайт для использования сервиса Odata.

По сути, система A вызывает веб-сайт и загружает данные из системы B. Когда пользователь нажимает кнопку, отправьте данные обратно в систему A. Это для моей функциональности каталога OCI в IW32.

Я не знаю, каким должен быть URL-адрес HOOK или как отправить данные обратно в систему A.

Я что-то упустил?


<!DOCTYPE html>
<html>
<head>

<link href="Style.css" rel="stylesheet" type="text/css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<script src="Component.js"></script>

<meta charset="ISO-8859-1">
<title>Data from BPS</title>
</head>
<body>
    <p>Materials from BPS</p>

        Material:<input type="text" name="iMat" id="iMat"><br><br>
        Material Type:<input type="text" name="iMatType" id="iMatType"><br><br>
        Material Description:<input type="text" name="iMatDesc"  id="iMatDesc"><br><br>
<!--         <input type="button" id="btnSubmit" name="storeSAP" value="Transfer to SAP"/> -->

<form id="form" name="frmbasket" action="http://example.com?sap-client=800?&HOOK_URL=SAPEVENT:POST"
            method="post" target="_top">
<input type="button" id="button" value="Submit">
    <table id=table>
        <thead>
            <tr>
                <th>Material</th>
                <th>MaterialType</th>
                <th>MaterialDesc</th>
            </tr>
          </thead>
        <tbody>
        <tr>
            <td>
            <input type="hidden" name="NEW_ITEM-DESCRIPTION[1]" id="iMatDesc"> 
            <input type="hidden" name="NEW_ITEM-MATNR[1]" id="iMat"> 
            <input type="hidden" name="NEW_ITEM-MATGROUP[1]" value = ""> 
            <input type="hidden" name="NEW_ITEM-QUANTITY[1]" value = "1"> 
            <input type="hidden" name="NEW_ITEM-UNIT[1]" value = "EA"> 
            <input type="hidden" name="NEW_ITEM-PRICE[1]" value = "71.85">
            <input type="hidden" name="NEW_ITEM-PRICEUNIT[1]" value = "5"> 
            <input type="hidden" name="NEW_ITEM-CURRENCY[1]" value = "USD">
            <input type="hidden" name="NEW_ITEM-LEADTIME[1]" value = "1"> 
            <input type="hidden" name="NEW_ITEM-VENDOR[1]" value = ""> 
            <input type="hidden" name="NEW_ITEM-VENDORMAT[1]" value = "">
            <input type="hidden" name="NEW_ITEM-MANUFACTCODE[1]" value = ""> 
            <input type="hidden" name="NEW_ITEM-MANUFACTMAT[1]" value = "">
            <input type="hidden" name="NEW_ITEM-CONTRACT[1]" value = "">
            <input type="hidden" name="NEW_ITEM-CONTRACT_ITEM[1]" value = "">
            <input type="hidden" name="NEW_ITEM-SERVICE[1]" value = "">
            <input type="hidden" name="NEW_ITEM-EXT_QUOTE_ID[1]" value = "">
            <input type="hidden" name="NEW_ITEM-EXT_QUOTE_ITEM[1]" value = "">
            <input type="hidden" name="NEW_ITEM-EXT_PRODUCT_ID[1]" value = "">
            <input type="hidden" name="NEW_ITEM-LONGTEXT_1:132[1]" value = "longtext_1: Test Text">
            <input type="hidden" name="NEW_ITEM-CUST_FIELD1[1]" value = "custf 1.1">
            <input type="hidden" name="NEW_ITEM-CUST_FIELD2[1]" value = "custf 1.2">
            <input type="hidden" name="NEW_ITEM-CUST_FIELD3[1]" value = "custf 1.3">
            <input type="hidden" name="NEW_ITEM-CUST_FIELD4[1]" value = "custf 1.4">
            <input type="hidden" name="NEW_ITEM-CUST_FIELD5[1]" value = "custf 1.5">
            <input type="hidden" name="NEW_ITEM-SORTF[1]" id="iMat"> 

            </td>
        </tr>       
        </tbody>
    </table>
  </form>   
</body>
</html>

Это Component.js, для которого у меня есть сценарии для него

$(document)
        .ready(
                function() {
                    var query = "example.com" // root
                    // uri
                            + "?$format=json"; // give me json
                    // + "&$callback=callback"; //this is my callback

                    $.ajax({
                        type: "GET",
                        dataType : 'json',
                        url : query,
                        // jsonpCallback : 'callback',
                         username: sUsername,
                         password: sPassword,
                         contentType: "application/json",
                         success : callback,
                         error: function (xhr) { //Add these parameters to display the required response
                             alert(xhr.status);
                             alert(xhr.statusText);
                         },
                    });
                    function callback(result) {
                        var html = '';
                        // var shows = result.d;
                        // $('#dsListTemplate').tmpl(shows).appendTo('#ds_shows');
                        $.each(result.d.results, function(i, post) {
                            html += '<tr>';
                            html += '<td>' + post.Material + '</td>';
                            html += '<td>' + post.MaterialType + '</td>';
                            html += '<td>' + post.MaterialDesc + '</td>';
                            html += '</tr>';
                            $('table tbody').html(html);
                        });
                    }
                });


$(document).ready(function() {
    $("#table").on("click", "tr", function(event) {
        event.preventDefault();
        $('#table tr').removeClass('selected');
        $(this).addClass('selected');   


                 document.getElementById("iMat").value = this.cells[0].innerHTML;
                 document.getElementById("iMatType").value = this.cells[1].innerHTML;
                 document.getElementById("iMatDesc").value = this.cells[2].innerHTML;

/*        event = event || window.event; //for IE8 backward compatibility
        var target = event.target || event.srcElement; //for IE8 backward compatibility
        while (target && target.nodeName != 'tr') {
            target = target.parentElement;
        }
        //var cells = target.cells; //cells collection
        var cells = target.getElementsByTagName('td'); //alternative
        if (!cells.length || target.parentNode.nodeName == 'THEAD') { // if clicked row is within thead
            return;
        }
        var f1 = document.getElementById('Material');
        var f2 = document.getElementById('MaterialType');
        var f3 = document.getElementById('MaterialDesc');
        f1.value = cells[0].innerHTML;
        f2.value = cells[1].innerHTML;
        f3.value = cells[2].innerHTML;  */  
    });

});


$(document).ready(function(){
    $( "#button" ).click(function() {
        $( "#form" ).submit();
    });
});


/*$(document).ready(function() {
    $("#btnSubmit").click(function() {

        var a=$("#form").serialize();

                $.ajax({
                    type: "POST",
                    url: "http://example.com:8000/sap/bc/ui5_ui5/sap/XXXXXX/index.html?sap-client=800?&HOOK_URL=SAPEVENT:POST",
                    data: a, 
                    success: function (data) {
                        alert(data); 
                    }
                });     
            });
});
*/

Поэтому, когда нажимает кнопку «Отправить», я должен перенести эти NEW-FIELDS обратно в систему SAP на IW32 (вкладка «Компонент»)

Любой совет?

1 Ответ

0 голосов
/ 25 июня 2019

Это решено. Проблема возникла из-за местоположения, в котором я закодировал скрытый ввод, а также параметра действия

...