
com.sap.cloud.sdk.s4hana.datamodel.odata.services.DefaultMaterialDocumentService Maven / Gradle / Ivy
/*
* Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved.
*/
package com.sap.cloud.sdk.s4hana.datamodel.odata.services;
import java.time.LocalDateTime;
import javax.annotation.Nonnull;
import javax.inject.Named;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.materialdocument.CancelFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.materialdocument.CancelItemFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.materialdocument.MaterialDocumentHeader;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.materialdocument.MaterialDocumentHeaderByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.materialdocument.MaterialDocumentHeaderCreateFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.materialdocument.MaterialDocumentHeaderFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.materialdocument.MaterialDocumentItemByKeyFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.materialdocument.MaterialDocumentItemFluentHelper;
import com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.materialdocument.batch.DefaultMaterialDocumentServiceBatch;
/**
*
* This service enables you to retrieve and create material documents, e.g. to post a goods receipt for a purchase order
* or to document the transfer of materials between two storage locations. Additionally, the service allows to cancel
* existing material documents or single items. It can be consumed by external systems and user interfaces.
*
*
*
* Reference: SAP
* API Business Hub
*
* Details:
*
*
* OData Service:
* API_MATERIAL_DOCUMENT_SRV
*
*
* API Version:
* 1
*
*
* Communication Scenario:
* Material Document Integration (SAP_COM_0108)
*
*
* Scope Items:
* Core Inventory Management (BMC)
*
*
* Authentication Methods:
* Basic, x509
*
*
*
*/
@Named( "com.sap.cloud.sdk.s4hana.datamodel.odata.services.DefaultMaterialDocumentService" )
public class DefaultMaterialDocumentService implements MaterialDocumentService
{
@Nonnull
private final String servicePath;
/**
* Creates a service using {@link MaterialDocumentService#DEFAULT_SERVICE_PATH} to send the requests.
*
*/
public DefaultMaterialDocumentService()
{
servicePath = MaterialDocumentService.DEFAULT_SERVICE_PATH;
}
/**
* Creates a service using the provided service path to send the requests.
*
* Used by the fluent {@link #withServicePath(String)} method.
*
*/
private DefaultMaterialDocumentService( @Nonnull final String servicePath )
{
this.servicePath = servicePath;
}
@Override
@Nonnull
public DefaultMaterialDocumentService withServicePath( @Nonnull final String servicePath )
{
return new DefaultMaterialDocumentService(servicePath);
}
/**
* {@inheritDoc}
*
*/
@Override
@Nonnull
public DefaultMaterialDocumentServiceBatch batch()
{
return new DefaultMaterialDocumentServiceBatch(this);
}
@Override
@Nonnull
public MaterialDocumentHeaderFluentHelper getAllMaterialDocumentHeader()
{
return new MaterialDocumentHeaderFluentHelper(servicePath);
}
@Override
@Nonnull
public
MaterialDocumentHeaderByKeyFluentHelper
getMaterialDocumentHeaderByKey( final String materialDocumentYear, final String materialDocument )
{
return new MaterialDocumentHeaderByKeyFluentHelper(servicePath, materialDocumentYear, materialDocument);
}
@Override
@Nonnull
public MaterialDocumentHeaderCreateFluentHelper createMaterialDocumentHeader(
@Nonnull final MaterialDocumentHeader materialDocumentHeader )
{
return new MaterialDocumentHeaderCreateFluentHelper(servicePath, materialDocumentHeader);
}
@Override
@Nonnull
public MaterialDocumentItemFluentHelper getAllMaterialDocumentItem()
{
return new MaterialDocumentItemFluentHelper(servicePath);
}
@Override
@Nonnull
public MaterialDocumentItemByKeyFluentHelper getMaterialDocumentItemByKey(
final String materialDocumentYear,
final String materialDocument,
final String materialDocumentItem )
{
return new MaterialDocumentItemByKeyFluentHelper(
servicePath,
materialDocumentYear,
materialDocument,
materialDocumentItem);
}
@Override
@Nonnull
public
CancelFluentHelper
cancel( final String materialDocumentYear, final String materialDocument, final LocalDateTime postingDate )
{
return new CancelFluentHelper(servicePath, materialDocumentYear, materialDocument, postingDate);
}
@Override
@Nonnull
public CancelItemFluentHelper cancelItem(
final String materialDocumentYear,
final String materialDocument,
final String materialDocumentItem,
final LocalDateTime postingDate )
{
return new CancelItemFluentHelper(
servicePath,
materialDocumentYear,
materialDocument,
materialDocumentItem,
postingDate);
}
}