Blog

  • Applying Periodic Processing

    Analysis of Conversion Differences (MB5U Transaction) / Analyze Conversion Differences App

    In the SAP system, you can manage materials in different units of measure. You must always specify a base unit of measure for the material. Alternative units of measure are then defined using a conversion factor with reference to this base unit of measure. The system automatically converts all quantities that you enter in an alternative unit of measure during a goods movement into the base unit of measure.

    Rounding differences may occur during these conversions. Especially in the following cases, rounding effects may occur:

    • The base unit of measure is a metric unit of measure (such as meter, liter, and kilogram) and goods movements are posted in non-metric units (such as yard, gallon, and pound) (or vice versa).
    • The base unit of measure is not the smallest unit of measure, unlike the alternative unit of measure.

    java programming training courses malaysia

    List of Stock Values (MB5L Transaction) / Display List of Stock Values App 

    With the reportList of Stock Values, you can display the total stock quantity and the total stock value for a material (or several materials) at company code and valuation area level. In addition, the stock account to which the specified material is posted during goods movements is determined.

    You can also display the balance values per company code and G/L account. For each G/L account, the balance is compared with the sum of the stock values of the associated materials. The difference between the two totals is displayed.

    You can restrict the search options in the List of Stock Values report with the following fields:

    • Material
    • Company code
    • Valuation area
    • Valuation type
    • Valuation class
    • G/L account

    In addition, you can choose the period for the evaluation (current period, previous period, or previous year) and specify the scope of the list, for example, totals or negative stocks only.

    oracle java training courses malaysia

    If you start the report without specifying a material, valuation area, and valuation class, the balance for each stock account must match the total of all stock values of the materials for the relevant valuation class. A variance can have the following reasons:

    • You made manual postings to the stock account.
    • Other postings besides stock postings are made to the stock account. In this case, you need to check the account determination in the Customizing settings for valuation. Ensure that the stock accounts are used only for transaction key BSX (stock postings).
    • You changed the account determination for stock accounts (transaction and event key BSX) in the current operation, but you did not debit the relevant stocks from the old account (movement type 562) and posted to the new account (movement type 561).

    If you place the cursor on the G/L account in the output list and choose EnvironmentStocks, the system displays an overview of all materials that are managed in this G/L account. The system also displays the total value and total stock for each material.

    jboss enterprise application platform training courses malaysia

  • Performing the Process of Subcontracting

    Special Procurement Process of Subcontracting – Overview

    During subcontracting, your company orders material from an external supplier. Unlike a normal external procurement process, your company makes the components for the production of the materials partially or completely available to the supplier (subcontractor).

    oracle linux administration training courses malaysia

    Subcontracting in Inventory Management

    Inventory management supports the following functions within subcontracting:

    • Special stock type “Stock of Material Provided to Supplier”
    • Provision of components
    • Goods receipt for finished product with consumption of components
    • Subsequent adjustment in the case of excess or under-consumption of components
    • Transfer postings (material to material, stock to stock, and plant to plant)

    For the stock of material provided to suppliers, the available stock types are unrestricted-use stock and stock in quality inspection. The quantities consumed by the subcontractor can be withdrawn only from the unrestricted-use stock. A physical inventory is to be carried out for the stock of material provided to the supplier.

    To analyze the stocks of material provided, you can use various stock evaluations, for example:

    • Display Stock Overview app and corresponding transaction Stock Overview (MMBE):In the stock overview, at plant level, the total of all stocks of material provided for this material in this plant is displayed. With a double-click on this special stock line you see a detailed overview of the stock of material provided per subcontractor.To start the transaction from the SAP Easy Access menu, choose LogisticsMaterials ManagementInventory ManagementEnvironmentStockStock Overview (MMBE). 
    • Stocks at Subcontractor app and corresponding transaction Stocks at Subcontractor (MBLB):With this function, you can display stocks provided for several materials and several subcontractors (supplier) at the same time.To start the transaction from the SAP Easy Access menu, choose LogisticsMaterials ManagementInventory ManagementEnvironmentStockStock with Subcontractor (MBLB). 
    • Stock – Multiple Material app:In the app, to select only stocks of material provided, select the predefined view Stock Value for Subcontracting Stock (O). In this view, the filter for the special stock type is already preset with O (Subcontracting Stock).
    • Display Subcontracting Stocks by Supplier app and corresponding transaction Subcontracting Cockpit (ME2ON):To start the transaction from the SAP Easy Access menu, choose LogisticsMaterials ManagementPurchasingPurchase OrderReportingSubcontracting Cockpit (ME2ON). 

    From the point of view of inventory management, the posting of a provision of components corresponds to a transfer posting from unrestricted-use stock to the stock of material provided to vendor. This transfer posting can be carried out using the one-step procedure (MvT 541), or the two-step procedure (MvT 30A and 30C).

    There are different options available for posting the provision of components.

    1. In Inventory Management, you can post a provision of components using transaction MIGO and the corresponding SAP Fiori App Post Goods Movement. You can refer to the subcontracting item (SC item) of the purchase order when entering this transfer posting. The components and their quantities are then proposed from the SC item. You can change the proposed quantities of the materials to be provided.Provision of components with reference to a purchase order is not updated in the purchase order history because the stock of the material provided is not purchase-order based.
    2. In transaction MIGO and the corresponding SAP Fiori App Post Goods Movement, you can also provide components without reference to a purchase order. To do this, you enter another transfer posting and specify the required materials and quantities as well as the subcontractor manually.
    3. In Purchasing, you can use the Subcontracting Cockpit (transaction ME2ON) or the corresponding app Display Subcontracting Stocks by Supplier to post a goods issue for the components. As the selection criteria, you enter, for example, the supplier, the component to be provided, or the material to be produced. A list containing the requirements and stocks of the components, and the pegged requirements is then displayed. To post a provision for a component, select the relevant line and choose EditPost goods issue.
    1. In addition, in SAP S/4HANA there is the Subcontracting Cockpit Fiori app. Its functions are similar to those of transaction ME2ON. The SAP Fiori app provides you with an overview of open and completed purchasing documents (purchase orders and scheduling agreements). As filter criteria, you are offered subcontractor (supplier), component, assembly (material to be produced), plant and shipping status, among others. You can execute the following functions for the selected subcontracting documents and the associated components:
      • Post goods issue on purchasing document item level.
      • Create the delivery document for the component delivery.
      • Calculate the stock balance at component, plant, and supplier level. If you click on the calculated stock balance for a component, you get a detailed overview of the stock and requirements situation of the component.
    2. If you have to procure a component from a second supplier, you can have it delivered directly to the subcontractor. To do this, you must specify the following in the delivery address of the purchase order item:
      • the supplier number of the subcontractor
      • the Subcontractor supplier (SC Supp) indicator
      When your subcontractor informs you that the component has arrived, you enter the goods receipt for the component purchase order. At this goods receipt, the component is posted directly to the stock of material provided which is assigned to the subcontractor. You cannot do without this goods receipt posting, since it is the only way to update the stock of material provided and thus also your own, usually valuated stock.This direct delivery of a component is taken into account in transaction ME2ON during selection if you set the With external receipts from purchase orders/purchase requisitions indicators. In the Subcontracting Cockpit Fiori app, the direct delivery is also taken into account when calculating the stock balance for a component.

    oracle peoplesoft training courses malaysia

    Subcontracting: Transfer Postings of the Stock of Material Provided

    The following transfer postings are allowed for the stock of material provided to supplier special stock:

    • Plant to plant in the one-step procedure (movement type 301)
    • Material to material (movement type 309)
    • Stock in quality inspection to unrestricted-use stock (movement type 321)

    To execute these transfer postings for the stock of material provided to supplier, you must specify the special stock indicator O; otherwise, the transfer postings do not differ from normal transfer postings.

    Subcontracting: Subsequent Adjustment

    If the subcontractor reports excess or under-consumption of subcontracting components after the delivery of the finished product, you must post a subsequent adjustment to correct the component consumption.

    The following functions are available for posting a subsequent adjustment:

    • Transaction MIGO or the corresponding Post Goods Movements app
    • Post Subsequent Adjustment Fiori app, since SAP S/4HANA 2021

    Enter a subsequent adjustment using transaction MIGO:

    In the list of business transactions, choose Subsequent Adjustment. As a reference document, the system automatically enters Purchase Order. After you have specified the purchase order item, you can enter the difference quantity for each component. If a component has excess consumption, you only need to enter the additional quantity consumed. If less was consumed by a component than was posted at goods receipt, you also set the Underconsumption / Short Receipt indicator. This increases the stock provided of this component by the difference quantity (the consumption is reversed).

    Enter a subsequent adjustment using Post Subsequent Adjustment app:

    On the initial screen, enter the document number of the purchasing document for which you want to enter a subsequent adjustment. To enter the overconsumption or underconsumption of a component, open the item details. In the Components section, in the Goods Movement field, select whether there is Overconsumption or Underconsumption for the individual component and enter the quantity to be posted. For components for which no subsequent adjustment needs to be posted, leave the default No Posting for the goods movement unchanged. Finally, choose Apply for the component data and post the subsequent adjustment.

    oracle siebel crm training courses malaysia

  • Document an API by using Swashbuckle

    Swashbuckle is a NuGet package that provides a way to automatically generate Swagger documentation for ASP.NET Web API projects. Swagger is a tool that helps developers design, build, document, and consume RESTful APIs. With Swashbuckle, you can easily add Swagger documentation to your Web API project by annotating your code with attributes that describe your API endpoints, parameters, and responses. Swashbuckle then uses this information to generate a Swagger JSON file, which can be used to generate interactive API documentation, client SDKs, and more.

    hrms

    There are three main components to Swashbuckle:

    • Swashbuckle.AspNetCore.Swagger: a Swagger object model and middleware to expose SwaggerDocument objects as JSON endpoints.
    • Swashbuckle.AspNetCore.SwaggerGen: a Swagger generator that builds SwaggerDocument objects directly from your routes, controllers, and models. It’s typically combined with the Swagger endpoint middleware to automatically expose Swagger JSON.
    • Swashbuckle.AspNetCore.SwaggerUI: an embedded version of the Swagger UI tool. It interprets Swagger JSON to build a rich, customizable experience for describing the web API functionality. It includes built-in test harnesses for the public methods.

    The following dotnet add command installs the Swashbuckle NuGet package:

    .NET CLI

    dotnet add <name>.csproj package Swashbuckle.AspNetCore -v 6.5.0
    

    infrastructure services

    Add and configure Swagger middleware

    Add the Swagger generator to the services collection in Program.cs.

    C#

    builder.Services.AddEndpointsApiExplorer();
    builder.Services.AddSwaggerGen();
    

     Note

    The call to AddEndpointsApiExplorer shown in the previous example is only required for minimal APIs.

    Enable the middleware for serving the generated JSON document and the Swagger UI, also in Program.cs:

    C#

    app.UseSwagger();
    if (app.Environment.IsDevelopment())
    {
        app.UseSwaggerUI();
    }
    

    The default endpoint for the Swagger UI is http:<hostname>:<port>/swagger.

     Note

    SwaggerUI is very useful in your development environment. It can be enabled in production, but you should consider any security requirements for your specific application before doing so.

    it consulting

    Customize and extend the Swagger documentation

    Swagger provides options for documenting the object model and customizing the UI. The configuration action passed to the AddSwaggerGen method can include additional information through the OpenApiInfo class.

    The following code sample shows how to add information to display in the API documentation.

    C#

    // Add using statement for the OpenApiInfo class
    using Microsoft.OpenApi.Models;
    
    builder.Services.AddSwaggerGen(options =>
    {
        options.SwaggerDoc("v1", new OpenApiInfo
        {
            Version = "v1",
            Title = "Fruit API",
            Description = "API for managing a list of fruit their stock status.",
            TermsOfService = new Uri("https://example.com/terms")
        });
    });
    
    

    The Swagger UI displays the version and the added information:

    Screenshot showing additional descriptive information added to an API.

    You can group operations in your API with the .WithTags option. You can also add descriptive text describing the operation with the .WithSummary option. The following sample code shows using .WithTags to group the POST operation into both a post group, and a fruit group. It also adds the summary specified in the .WithSummary option to the operation.

    C#

    app.MapPost("/fruits", async (Fruit fruit, FruitDb db) =>
    {
        db.Fruits.Add(fruit);
        await db.SaveChangesAsync();
    
        return Results.Created($"/{fruit.Id}", fruit);
    })
        .Produces<Fruit>(201)
        .WithTags("post", "fruits")
        .WithSummary("Create a new fruit");
    

    The Swagger UI displays the specified grouping and summary description.

    Screenshot of the Swagger UI displaying the post operation in two groups with a summary description.

  • Explore HTTP clients in .NET Core

    The Hypertext Transfer Protocol (or HTTP) is used to request resources from a web server. Many types of resources are available on the web, and HTTP defines a set of request methods for accessing these resources. In .NET Core, those requests are made through an instance of the HttpClient.

    oracle database training courses malaysia

    There are two options for implementing HttpClient in your app and the recommendation is to choose the implementation based on the clients lifetime management needs:

    • Long-lived clients: create a static or singleton instance using the HttpClient class and set PooledConnectionLifetime
    • Short-lived clients: use clients created by IHttpClientFactory

    Implement with the HttpClient class

    The System.Net.Http.HttpClient class sends HTTP requests and receives HTTP responses from a resource identified by a URI. An HttpClient instance is a collection of settings applied to all requests executed by that instance, and each instance uses its own connection pool, which isolates its requests from others. Beginning with .NET Core 2.1, the SocketsHttpHandler class provides the implementation, making behavior consistent across all platforms.

    HttpClient only resolves DNS entries when a connection is created. It doesn’t track time to live (TTL) durations specified by the DNS server. If DNS entries change regularly the client is unaware those updates. To solve this issue, you can limit the lifetime of the connection by setting the PooledConnectionLifetime property, so that DNS lookup is repeated when the connection is replaced.

    In the following example, HttpClient is configured to reuse connections for 15 minutes. After the TimeSpan specified by PooledConnectionLifetime elapses, the connection is closed and a new one is created.

    C#

    var handler = new SocketsHttpHandler
    {
        PooledConnectionLifetime = TimeSpan.FromMinutes(15) // Recreate every 15 minutes
    };
    var sharedClient = new HttpClient(handler);
    

    Implement with IHttpClientFactory

    The IHttpClientFactory serves as a factory abstraction that can create HttpClient instances with custom configurations. IHttpClientFactory was introduced in .NET Core 2.1. Common HTTP-based .NET workloads can take advantage of middleware with ease.

    When you call any of the AddHttpClient extension methods, you’re adding the IHttpClientFactory and related services to the IServiceCollection. The IHttpClientFactory type offers the following benefits:

    • Exposes the HttpClient class as a dependency injection-ready type.
    • Provides a central location for naming and configuring logical HttpClient instances.
    • Codifies the concept of outgoing middleware via delegating handlers in HttpClient.
    • Provides extension methods for Polly based middleware to take advantage of delegating handlers in HttpClient.
    • Manages the caching and lifetime of underlying HttpClientHandler instances. Automatic management avoids common Domain Name System (DNS) problems that occur when manually managing HttpClient lifetimes.
    • Adds a configurable logging experience for all requests sent through clients created by the factory.

    You should let HttpClientFactory and the framework manage the lifetimes and instantiation of HttpClient instances. The lifetime management helps avoid common issues such as DNS (Domain Name System) problems that can occur when manually managing HttpClient lifetimes.

    oracle cloud infrastructure training courses malaysia

    There are several ways IHttpClientFactory can be used in an app:

    • Basic usage
    • Named clients
    • Typed clients
    • Generated clients

    The best approach depends upon the app’s requirements.

    nodejs training courses malaysia

  • Understand dependency injection

    ASP.NET Core apps often need to access the same services across multiple components. For example, several components might need to access a service that fetches data from a database. ASP.NET Core uses a built-in dependency injection (DI) container to manage the services that an app uses.

    red hat certified system administrator rhcsa malaysia

    Dependency injection and Inversion of Control (IoC)

    The dependency injection pattern is a form of Inversion of Control (IoC). In the dependency injection pattern, a component receives its dependencies from external sources rather than creating them itself. This pattern decouples the code from the dependency, which makes code easier to test and maintain.

    Consider the following Program.cs file:

    C#

    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Http;
    using Microsoft.Extensions.DependencyInjection;
    using MyApp.Services;
    
    var builder = WebApplication.CreateBuilder(args);
        
    builder.Services.AddSingleton<PersonService>();
    var app = builder.Build();
    
    app.MapGet("/", 
        (PersonService personService) => 
        {
            return $"Hello, {personService.GetPersonName()}!";
        }
    );
        
    app.Run();
    

    And the following PersonService.cs file:

    C#

    namespace MyApp.Services;
    
    public class PersonService
    {
        public string GetPersonName()
        {
            return "John Doe";
        }
    }
    

    To understand the code, start with the highlighted app.MapGet code. This code maps HTTP GET requests for the root URL (/) to a delegate that returns a greeting message. The delegate’s signature defines an PersonService parameter named personService. When the app runs and a client requests the root URL, the code inside the delegate depends on the PersonService service to get some text to include in the greeting message.

    Where does the delegate get the PersonService service? It’s implicitly provided by the service container. The highlighted builder.Services.AddSingleton<PersonService>() line tells the service container to create a new instance of the PersonService class when the app starts, and to provide that instance to any component that needs it.

    Any component that needs the PersonService service can declare a parameter of type PersonService in its delegate signature. The service container will automatically provide an instance of the PersonService class when the component is created. The delegate doesn’t create the PersonService instance itself, it just uses the instance that the service container provides.

    agile project management certification training courses malaysia

    Interfaces and dependency injection

    To avoid dependencies on a specific service implementation, you can instead configure a service for a specific interface and then depend just on the interface. This approach gives you the flexibility to swap out the service implementation, which makes the code more testable and easier to maintain.

    Consider an interface for the PersonService class:

    C#

    public interface IPersonService
    {
        string GetPersonName();
    }
    

    This interface defines the single method, GetPersonName, that returns a string. This PersonService class implements the IPersonService interface:

    C#

    internal sealed class PersonService : IPersonService
    {
        public string GetPersonName()
        {
            return "John Doe";
        }
    }
    

    Instead of registering the PersonService class directly, you can register it as an implementation of the IPersonService interface:

    C#

    var builder = WebApplication.CreateBuilder(args);
        
    builder.Services.AddSingleton<IPersonService, PersonService>();
    var app = builder.Build();
    
    app.MapGet("/", 
        (IPersonService personService) => 
        {
            return $"Hello, {personService.GetPersonName()}!";
        }
    );
        
    app.Run();
    

    This example Program.cs differs from the previous example in two ways:

    • The PersonService instance is registered as an implementation of the IPersonService interface (as opposed to registering the PersonService class directly).
    • The delegate signature now expects an IPersonService parameter instead of a PersonService parameter.

    When the app runs and a client requests the root URL, the service container provides an instance of the PersonService class because it’s registered as the implementation of the IPersonService interface.

     Tip

    Think of IPersonService as a contract. It defines the methods and properties that an implementation must have. The delegate wants an instance of IPersonService. It doesn’t care at all about the underlying implementation, only that the instance has the methods and properties defined in the contract.

    Testing with dependency injection

    Using interfaces makes it easier to test components in isolation. You can create a mock implementation of the IPersonService interface for testing purposes. When you register the mock implementation in the test, the service container provides the mock implementation to the component being tested.

    For example, say that instead of returning a hard-coded string, the GetPersonName method in the PersonService class fetches the name from a database. To test the component that depends on the IPersonService interface, you can create a mock implementation of the IPersonService interface that returns a hard-coded string. The component being tested doesn’t know the difference between the real implementation and the mock implementation.

    Also suppose your app maps an API endpoint that returns a greeting message. The endpoint depends on the IPersonService interface to get the name of the person to greet. The code that registers the IPersonService service and maps the API endpoint might look like this:

    C#

    var builder = WebApplication.CreateBuilder(args);
    
    builder.Services.AddSingleton<IPersonService, PersonService>();
    
    var app = builder.Build();
    
    app.MapGet("/", (IPersonService personService) =>
    {
        return $"Hello, {personService.GetPersonName()}!";
    });
    
    app.Run();
    

    This is similar the previous example with IPersonService. The delegate expects an IPersonService parameter, which the service container provides. As mentioned earlier, assume that the PersonService that implements the interface fetches the name of the person to greet from a database.

    Now consider the following XUnit test that tests the same API endpoint:

     Tip

    Don’t worry if you’re not familiar with XUnit or Moq. Writing unit tests is outside the scope of this module. This example is just to illustrate how dependency injection can be used in testing.

    C#

    using Microsoft.AspNetCore.Mvc.Testing;
    using Microsoft.Extensions.DependencyInjection;
    using Moq;
    using MyWebApp;
    using System.Net;
    
    public class GreetingApiTests : IClassFixture<WebApplicationFactory<Program>>
    {
        private readonly WebApplicationFactory<Program> _factory;
    
        public GreetingApiTests(WebApplicationFactory<Program> factory)
        {
            _factory = factory;
        }
    
        [Fact]
        public async Task GetGreeting_ReturnsExpectedGreeting()
        {
            //Arrange
            var mockPersonService = new Mock<IPersonService>();
            mockPersonService.Setup(service => service.GetPersonName()).Returns("Jane Doe");
    
            var client = _factory.WithWebHostBuilder(builder =>
            {
                builder.ConfigureServices(services =>
                {
                    services.AddSingleton(mockPersonService.Object);
                });
            }).CreateClient();
    
            // Act
            var response = await client.GetAsync("/");
            var responseString = await response.Content.ReadAsStringAsync();
    
            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.Equal("Hello, Jane Doe!", responseString);
        }
    }
    

    The preceding test:

    • Creates a mock implementation of the IPersonService interface that returns a hard-coded string.
    • Registers the mock implementation with the service container.
    • Creates an HTTP client to make a request to the API endpoint.
    • Asserts that the response from the API endpoint is as expected.

    The test doesn’t care how the PersonService class gets the name of the person to greet. It only cares that the name is included in the greeting message. The test uses a mock implementation of the IPersonService interface to isolate the component being tested from the real implementation of the service.

    microsoft windows server certification training courses malaysia

  • Introduction

    When an ASP.NET Core app receives an HTTP request, it passes through a series of components that are responsible for processing the request and generating a response. These components are called middleware. ASP.NET Core includes a set of built-in middleware, and you can also create custom middleware to handle specialized requirements.

    java ee enterprise edition training courses malaysia

    Example scenario

    Suppose you’re an entry-level ASP.NET Core developer at a small company. Your team is building a new web app. The requirements include URL redirection, and real-time console output for monitoring purposes. Your team lead asked you to with implement the built-in middleware for URL redirection, and create a custom middleware component to log the request details.

    itil certification training courses malaysia

    What will we be doing?

    In this module, you use the .NET SDK to create a boilerplate ASP.NET Core web application. After ensuring it runs correctly, you’ll implement the built-in UrlRewriter middleware to rewrite URLs in the app. You’ll then create a custom middleware component to log request details to the console.

    What is the main goal?

    By the end of this module, you’ll be able to implement built-in and custom middleware in an ASP.NET Core app. You’ll also understand how middleware components work together to process HTTP requests and generate responses.

    istqb software testing certification training courses malaysia

  • Introduction

    The C# programming language allows you to build many types of applications, like:

    • Business applications to capture, analyze, and process data
    • Dynamic web applications that can be accessed from a web browser
    • Games, both 2D and 3D
    • Financial and scientific applications
    • Cloud-based applications
    • Mobile applications

    oracle certification malaysia

    But how do you begin to write an application?

    Applications are all made up of many lines of code that work together to achieve a task. By far, the best way to learn how to code is to write code. It’s encouraged that you write code along with the exercises in this module and the others in this learning path. Writing code yourself in each exercise and solving small coding challenges will accelerate your learning.

    nutanix certification malaysia

    You’ll also begin learning small foundational concepts and build on them with continual practice and exploration.

    In this module, you’ll:

    • Write your first lines of C# code.
    • Use two different techniques to print a message as output.
    • Diagnose errors when code is incorrect.
    • Identify different C# syntax elements like operators, classes, and methods.

    By the end of this module, you’ll be able to write C# code to print a message to the standard output of a console, like the Windows Terminal. These lines of code will give you your first look at the C# syntax, and immediately provide invaluable insights.

    microsoft certification malaysia

  • Introduction

    In this module, you create your first ASP.NET Core web app with .NET and C#.

    Example scenario

    You’re just getting started with ASP.NET Core. You want to understand how to quickly build your first web app and get familiar with the structure of a basic project. You want to understand how to run and serve a minimal web app on your local machine to view it in a browser.

    visual studio net training courses malaysia

    What will we be doing?

    In this module, you:

    • Review ASP.NET Core default project templates available in the .NET SDK.
    • Create an ASP.NET Core web app project from a template.
    • Examine the structure of the created project.
    • Run your web app locally and view it in a browser.
    • Review how the web app is served.
    • Make code changes during local development.

    At the end of this module, there are links to content providing deeper dives for ASP.NET Core web application development.

    microsoft system center certification training courses malaysia

    Required tools

    This module uses Visual Studio Code with the C# Dev Kit extension to demonstrate creating and running an ASP.NET Core web app.

    The following tools are required:

    • The latest version of .NET SDK installed from the .NET website
    • The latest versions of Visual Studio Code with C# Dev Kit extension installed.

    microsoft sql server certification training courses malaysia

  • Summary

    In this module, you learned that Blazor is a modern full stack web UI framework based on HTML, CSS, and C#. You learned that Blazor apps are made up of components that can run from the server or client. You also learned some criteria to help decide whether to choose Blazor for your next web app project.

    cisco certification malaysia

    Are you ready to build your first Blazor web app? Continue on to the next module to get started.

    checkpoint certification malaysia

    Also, check out the following resources to learn more about Blazor.

    References

    • Blazor home page
    • Blazor docs
    • Blazor customer showcase

    aws certification malaysia

  • Checking Availability and Missing Parts

    Types of Availability Check

    There are two types of availability check.

    • Static availability check:Availability check of the stock types in inventory management 
    • Dynamic availability check:Check of available stocks from the viewpoint of material requirements planning

    Availability Check of the Stock Types (Static Availability Check)

    For every material movement, the system automatically performs an availability check of the stock types. This availability check prevents the book inventory balance of the various physical stock types (for example, unrestricted-use stock) from becoming negative. With this type of availability check, only the stocks available at the time of entry are taken into account. This check is carried out automatically, and no settings can be made for it in the system.

    The static availability check covers the relevant stock affected at plant, storage location, and special stock level. The stocks affected are determined via the movement type. Nonavailability leads to an error message.

    For example, you enter a transfer posting for a material with movement type 321, transferring 20 pieces from stock in quality inspection to unrestricted-use stock. The system then checks whether 20 pieces of the material actually exist in stock in quality inspection at the specified plant and storage location.

    infrastructure services

    Check of available stocks from the viewpoint of material requirements planning (Dynamic Availability Check)

    In addition to checking the stocks that physically exist in the warehouse, available stock can also be checked from the viewpoint of Material Requirements Planning. With the dynamic availability check, planned receipts and issues can also be taken into account. This check enables you to prevent an already reserved quantity from being withdrawn or reserved for another purpose, for example.

    For example, today there are 100 pieces of a material in unrestricted-use stock in the warehouse. Thirty pieces of the material are reserved for withdrawal tomorrow, and another 20 pieces are reserved for withdrawal the day after. Consequently, only 50 pieces of the material are available today, because the rest have already been reserved for other purposes. If you tried withdrawing 60 pieces today, the system would display a warning or error message, depending on the configuration.

    This type of availability check is used in several applications, for example, in:

    • Inventory Management when creating a reservation or entering a goods issue
    • Sales and Distribution when creating a sales order
    • Production when creating a production order
    • Purchasing when creating a stock transport order

    Settings for Dynamic Availability Check in Inventory Management

    You maintain the settings for the availability check in Customizing as follows:

    • For goods movements:Go to Customizing for Materials Management under Inventory Management and Physical InventoryGoods Issue/Transfer PostingsConfigure Scope of Availability Check (OMCP); or under Inventory Management and Physical InventoryGoods ReceiptSet Dynamic Availability Check (OMCM).
    • For reservations:Go to Customizing for Materials Management under Inventory Management and Physical InventoryReservationConfigure Scope of Availability Check (OMB1).

    Specification of the Checking Rule in Detail – Scope of Availability Check


    Normally, the replenishment lead time (RLT = purchasing processing time + planned delivery time + GR processing time) is taken into account in the availability check. If, for example, there is not sufficient stock for a requirement in four weeks, but the RLT is only two weeks, no message due to unavailability is issued.

    If you do not want the RLT to be taken into account in the availability check, you can adjust the settings for the Check Horizon (corresponds to the RLT).

    If the RLT is not to be taken into account, that is, a message is always issued in case of unavailability, regardless of the RLT, then select the entry Ignore Check Horizon for the Result After Check Horizon field

    If the RLT is to be taken into account in the availability check, select the entry Full Confirmation for the Result After Check Horizon field

    hrms

    Missing Parts Check

    A missing part is a stock of material that is already assigned to a GI at the time of GR and represents a requirement that could not be covered from existing stock because of a shortage of material or requirement undercoverage.

    Often, a missing part bypasses the warehouse and, upon receipt, is directly forwarded to the location where it is needed. However, this is only possible if the person entering the goods receipt and the responsible materials planner are both informed of this missing part situation.

    You can use the missing parts check to ensure that the warehouse clerk and the materials planner are automatically informed in case of such a shortage of requirements when a goods receipt is entered.

    The missing parts check builds upon the dynamic availability check. The same elements, checking group, checking rule, and availability check control are used for both.

    You can specify the settings for the missing parts check in Customizing for Materials Management under Inventory Management and Physical InventoryGoods ReceiptSet Missing Parts Check (OMBC).

    The following settings must be made in Customizing:

    • Activate missing parts check per plant.For a specific plant, you can specify whether the missing part message is to be output in a summarized or nonsummarized form.​
      • In nonsummarized missing part messages, a separate e-mail with a maximum of five MRP elements is sent per missing part material.
      • In summarized missing part messages, a list of missing part materials without specification of MRP elements is generated per MRP controller, material document, and plant.
    • Define a checking rule.
    • Specify the details for controlling the availability check.To use the missing parts check in the future for uncovered requirements, you must enter a checking horizon for the missing parts check. The checking horizon indicates the number of days in the future for which the system checks whether shortfall quantities exist for the material. If you do not specify a checking horizon, only past uncovered requirements are taken into account during the check.
    • Assignment of checking rule.At transaction level, the missing parts check uses the same checking rules as the availability check. However, you can maintain various checking rules at movement type level. The checking rule of the movement type takes precedence over that of the transaction. Note that an entry for the movement type without an entry for the transaction has no effect.
    • Specification of the mail recipient (e-mail user).If a user ID is assigned to the materials planner, the system sends the missing part message to the materials planner (MRP controller) responsible for the material.
    • Specification of missing part expediter.
    • If no user ID is assigned to the responsible materials planner, the message is sent to the central missing part expediter responsible for the plant. This person is defined per plant.

    financial