fluid-ws-java-client/src/main/java/com/fluidbpm/ws/client/v1/form/FormContainerClient.java
public Form executeCustomWebAction(
            String customWebActionParam,
            boolean isTableRecordParam,
            Long formContainerTableRecordBelowsToParam,
            Form formParam) {
        
        if(formParam != null && this.serviceTicket != null) {
            formParam.setServiceTicket(this.serviceTicket);
        }

        if(customWebActionParam == null || customWebActionParam.trim().isEmpty()){
            throw new FluidClientException(
                    "Custom Web Action is mandatory.",
                    FluidClientException.ErrorCode.FIELD_VALIDATE);
        }

        try {
            return new Form(this.postJson(
                    formParam, WS.Path.FormContainer.Version1.executeCustomWebAction(
                            customWebActionParam,
                            isTableRecordParam,
                            formContainerTableRecordBelowsToParam)));
        } catch (UnsupportedEncodingException unsEncExcept) {
            throw new FluidClientException(unsEncExcept.getMessage(),
                    unsEncExcept, FluidClientException.ErrorCode.IO_ERROR);
        }
    }
public Form executeCustomWebAction(
            String customWebActionParam,
            boolean isTableRecordParam,
            Long formContainerTableRecordBelowsToParam,
            Form formParam) {
        
        if(formParam != null && this.serviceTicket != null) {
            formParam.setServiceTicket(this.serviceTicket);
        }

        if(customWebActionParam == null || customWebActionParam.trim().isEmpty()){
            throw new FluidClientException(
                    "Custom Web Action is mandatory.",
                    FluidClientException.ErrorCode.FIELD_VALIDATE);
        }

        try {
            return new Form(this.postJson(
                    formParam, WS.Path.FormContainer.Version1.executeCustomWebAction(
                            customWebActionParam,
                            isTableRecordParam,
                            formContainerTableRecordBelowsToParam)));
        } catch (UnsupportedEncodingException unsEncExcept) {
            throw new FluidClientException(unsEncExcept.getMessage(),
                    unsEncExcept, FluidClientException.ErrorCode.IO_ERROR);
        }
    }
Execute the Custom Program with action alias {@code customWebActionParam}.
This method may be used for Form and Table Records.

@param customWebActionParam The custom web action name. Action identifier.
@param isTableRecordParam Is the form a table record form.
@param formContainerTableRecordBelowsToParam The parent form container if table record.
@param formParam The Form to send for 3rd Party execution.

@return Result after the 3rd Party Custom Web Action completed.

@see Field
@see Form
@see TableRecord
@see com.fluidbpm.program.api.vo.thirdpartylib.ThirdPartyLibrary