0

i want to return an array of struct from the function getPurchaseOrderForVendor. Bit when compiling im getting error like invoiceSettlement.sol:44:80: ParserError: Expected type name function getPurchaseOrderForVendor(string vendorNameInput) constant ret urns (struct[]) ^

pragma solidity ^0.4.21;
pragma experimental ABIEncoderV2;

contract InvoiceSettlement {

struct PurchaseOrderStruct {

    uint8 requisitionNumber;
    uint8 poNumber;

}

PurchaseOrderStruct[10] public PurchaseOrderStructArray;


function InvoiceSettlement()
{
        for (uint i = 0; i < purchaseOrderLength; i++) {

                PurchaseOrderStructArray[i].requisitionNumber = 1;
                PurchaseOrderStructArray[i].poNumber = 1;

        }
}


function  getPurchaseOrderForVendor(string vendorNameInput) constant returns (struct[])
{


    struct[] memory y = new struct[](16);

    for (uint i = 0; i < purchaseOrderLength; i++)
    {
        y[i] = PurchaseOrderStructArray[i];
    }
    return (y);

}


}
Vpn_Kp
  • 53
  • 11

1 Answers1

1

There is more then one error in this contract but without knowing what you trying to achieve I will just answer this

It should be like this

function getPurchaseOrderForVendor(string vendorNameInput) constant returns (PurchaseOrderStruct[])
Vitaly Migunov
  • 4,297
  • 2
  • 19
  • 23
  • Its correct vitaly. But i am using web3j for communication with this, which results error while using PurchaseOrderStruct[] in returntype value. ref this : https://stackoverflow.com/questions/49428518/web3j-v3-3-1-error-while-generating-compiled-solidity-smart-contracts-which-re/49435486#49435486 – Vpn_Kp Mar 22 '18 at 20:01